[C] Variable à plusieurs choix
Résolu/Fermé
Ashikonaruki
Messages postés
30
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
19 juillet 2010
-
19 juil. 2010 à 20:55
Mr. D@RK Messages postés 26 Date d'inscription lundi 19 juillet 2010 Statut Membre Dernière intervention 16 octobre 2010 - 20 juil. 2010 à 01:00
Mr. D@RK Messages postés 26 Date d'inscription lundi 19 juillet 2010 Statut Membre Dernière intervention 16 octobre 2010 - 20 juil. 2010 à 01:00
A voir également:
- [C] Variable à plusieurs choix
- Liste déroulante de choix excel - Guide
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
19 juil. 2010 à 23:05
19 juil. 2010 à 23:05
Bonjour,
Tu peux faire un tableau à deux dimensions.
La première dimension contiendra le choix de l'utilisateur (de 0 à 5) et la deuxième dimension contient tous les nombres possibles pour chacun des cas.
Par exemple :
Après, c'est à améliorer grandement. Du genre si l'équiprobabilité du générateur aléatoire est important, tu pourras utiliser une bonne vieille règle de trois pour se baser sur les bits de poids forts.
Ensuite, le tableau peut être adapté aussi suivant le nombre de valeurs à stocker.
etc.
Cdlt,
Tu peux faire un tableau à deux dimensions.
La première dimension contiendra le choix de l'utilisateur (de 0 à 5) et la deuxième dimension contient tous les nombres possibles pour chacun des cas.
Par exemple :
srand(time(NULL)); int tab[6][6]= {{22500,22501,22502,22503,22504,22505}, ...}; scanf("%d", &choixRecompense); nbHasard=rand()%6; printf("%d",tab[choixRecompense-1][nbHasard]);
Après, c'est à améliorer grandement. Du genre si l'équiprobabilité du générateur aléatoire est important, tu pourras utiliser une bonne vieille règle de trois pour se baser sur les bits de poids forts.
Ensuite, le tableau peut être adapté aussi suivant le nombre de valeurs à stocker.
etc.
Cdlt,
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
19 juil. 2010 à 20:58
19 juil. 2010 à 20:58
je ne suis pas sûr que ça existe en C, mais tu peux peut être faire des arrays
ensuite, tu tire un nombre aléatoire et tu prend la valeur correspondante dans ton tableau ;)
ensuite, tu tire un nombre aléatoire et tu prend la valeur correspondante dans ton tableau ;)
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 103
19 juil. 2010 à 20:59
19 juil. 2010 à 20:59
Ashikonaruki
Messages postés
30
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
19 juillet 2010
7
19 juil. 2010 à 23:51
19 juil. 2010 à 23:51
Bonsoir,
Finalement un ami ingénieur en informatique s'est connecté alors qu'il était censé être absent pendant un certain temps, du coup il m'a aidé en direct par msn.
Au cas où ça en intéresseraient certain je met mon nouveau code, il suffit de comprendre les modulos, le srand et le switch :
Avec ça j'ai pu insérer une valeur choisie au pif, puis soit la prendre directement lorsque c'était une suite normale, soit la remplacer par une autre valeur grâce à un switch lorsque c'étaient des valeurs n'ayant rien à voir les unes avec les autres.
Merci à vous deux pour votre aide !
Cordialement,
Ashikonaruki.
Finalement un ami ingénieur en informatique s'est connecté alors qu'il était censé être absent pendant un certain temps, du coup il m'a aidé en direct par msn.
Au cas où ça en intéresseraient certain je met mon nouveau code, il suffit de comprendre les modulos, le srand et le switch :
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> int main () { srand(time(NULL)); int choixRecompense = 0; int armes_ances = 0; int anneaux_speciaux = 0; int armes_vampi = 0; int anneaux_normaux = 0; int boucles_speciales = 0; int boucles_normales = 0; printf("=== QUELLE SERA LA RECOMPENSE ? ===\n\n\n\n"); printf("1. Armes Ancestrales\n\n"); printf("2. Armes Vampiriques\n\n"); printf("3. Anneaux Normaux\n\n"); printf("4. Boucles Normales\n\n"); printf("5. Anneaux Speciaux\n\n"); printf("6. Boucles Speciales\n\n"); printf("Quelle est la recompense a donner ?"); printf("\n\n\n\n"); scanf("%d", &choixRecompense); printf("\n\n"); switch (choixRecompense) { case 1: armes_ances = rand()%(22509-22500) + 22500; printf("%d", armes_ances); printf("\n\nN'oublis pas le /ritem, l'arme placee, puis le /ritem 0 0 6\n\n"); break; case 2: armes_vampi = rand()%(22519-22510) + 22510; printf("%d", armes_vampi); printf("\n\nN'oublis pas le /ritem, l'arme placee, puis le /ritem 0 0 8\n\n"); break; case 3: anneaux_normaux = rand()%4; switch(anneaux_normaux) { case 1: anneaux_normaux = 0; printf("\n\n2596\n\n"); break; case 2: anneaux_normaux = 1; printf("\n\n2106\n\n"); break; case 3: anneaux_normaux = 2; printf("\n\n2608\n\n"); break; case 4: anneaux_normaux = 3; printf("'\n\n2614\n\n"); break; } printf("\n\nN'oublis pas le /ra 20 !!\n\n"); break; case 4: boucles_normales = rand()%2; switch(boucles_normales) { case 1: boucles_normales = 0; printf("\n\n26468\n\n"); break; case 2: boucles_normales = 1; printf("\n\n26469\n\n"); break; } printf("\n\nN'oublis pas le /ra 20 !!\n\n"); break; case 5: anneaux_speciaux = rand()%4; switch(anneaux_speciaux) { case 1: anneaux_speciaux = 0; printf("\n\n20211\n\n"); break; case 2: anneaux_speciaux = 1; printf("\n\n20212\n\n"); break; case 3: anneaux_speciaux = 2; printf("\n\n20213\n\n"); break; case 4: anneaux_speciaux = 3; printf("\n\n20214\n\n"); break; } printf("\n\nN'oublis pas le /ra 15 !!\n\n"); break; case 6: boucles_speciales = rand()%2; switch(boucles_speciales) { case 1: boucles_speciales = 0; printf("\n\n20215\n\n"); break; case 2: boucles_speciales = 1; printf("\n\n20216\n\n"); break; } printf("\n\nN'oublis pas le /ra 15 !!\n\n"); break; default: printf("Aucune des possibilites ne correspond a ton choix."); break; }
Avec ça j'ai pu insérer une valeur choisie au pif, puis soit la prendre directement lorsque c'était une suite normale, soit la remplacer par une autre valeur grâce à un switch lorsque c'étaient des valeurs n'ayant rien à voir les unes avec les autres.
Merci à vous deux pour votre aide !
Cordialement,
Ashikonaruki.
Mr. D@RK
Messages postés
26
Date d'inscription
lundi 19 juillet 2010
Statut
Membre
Dernière intervention
16 octobre 2010
28
20 juil. 2010 à 01:00
20 juil. 2010 à 01:00
Je préfère l'idée de Fiddy au lieu du switch...