| Questions alléatoire |
| Auteur |
Message |
Darius
Invité
|
Posté le : Lun 20 Sep 2010, 20:46
|
|
|
Bonjour,
J'ai créer un programme sous forme de questions réponses et je voudrait savoir comment poser aléatoirement les questions pour éviter qu'il les poses toujours dans le même ordre.
Au lieu de prendre une variable A et qu'il écrit "A=?", je peut remplacer la variable A par une autre variable appelée "4+5" ?
| Code | :Disp "4+5"
:Prompt A
:If A=9
:Then
:Disp "BRAVO"
:Else
:Disp "FAUX, 4+5=9"
:End
:Disp "7-2"
:Prompt B
:If B=5
:Then
:Disp "BRAVO"
:Else
:Disp "Non, 7-2=5"
:End |
Merci
|
| |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Lun 20 Sep 2010, 21:30
|
|
|
Non,mais tu peux remplacer chaque chiffre de ton addition par une variable définie aléatoirement et mettre tout ça dans une boucle.Tu vois ce que je veux dire ? Tu sais comment faire ?
|
 |
|
| |
Darius
Invité
|
Posté le : Lun 20 Sep 2010, 21:42
|
|
|
J'ai mit une addition pour exemple mais par la suite je mettrai une question a la place de "7+2" mais par contre la réponse sera toujours un chiffre. Je c'est pas si c'est possible du-coup de faire une chaine.
|
| |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Lun 20 Sep 2010, 21:45
|
|
|
Je crois que le plus simple, c'est encore de donner un exemple de programme:
| Code |
int(rand 2+1->A
If A=1
Then
9->B
Input "4+5? ",C
Else
If A=2
5->B
Input "7-2? ",C
End
If B=C
Disp "BRAVO"
If B[différent de]C
Disp "FAUX","LA REPONSE EST", B |
Si ta calculatrice est française, remplace le int(rand 2+1 par entaléat(2,1).
Sangohan38
|
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Lun 20 Sep 2010, 21:49
|
|
|
Si c'est possible de faire avec une chaine,mais je ne comprends pas l'histoire de la réponse avec un chiffre,ce serait quoi comme genre de questions ?
|
 |
|
| |
Darius
Invité
|
Posté le : Lun 20 Sep 2010, 21:59
|
|
|
Ce serai une question comme :
Q : Pacte de Varsovie ?
R : 1955
|
| |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Lun 20 Sep 2010, 22:05
|
|
|
Si tes réponses sont uniquement des chiffres, tu peut utiliser des input comme je l'ai montré sur le prog.
Sangohan38
|
 |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |
Persalteas
Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Lun 20 Sep 2010, 22:06
|
|
|
eh bien ça donne:
If A=3
Then
1955->B
Input "PACTE DE VARSOVIE", C
End
If B=C
etc...
|
 |
|
| |
Darius
Invité
|
Posté le : Lun 20 Sep 2010, 22:08
|
|
|
Ok, je vais essayer. Merci de vos réponses.
|
| |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Lun 20 Sep 2010, 22:15
|
|
|
Oui,mais ça ne lui explique pas comment il peut faire pour que les questions soient choisies aléatoirement.
Comme toujours ya la méthode brute et la méthode avec un algorythme plus travaillé.
Admettons que t'ai 10 questions différentes,tu peux soit mettre un nombre aléatoire compris entre 1 et 10,et une suite de ifs qui renvoient le programme à des labels différents selon la valeur du nombre,et dans chaque label,tu mets une question avec sa réponse,puis ça renvoi à un autre label qui demande la réponse de l'utilisateur,vérifie si elle est juste et le dit.
C'est la méthode à utiliser si tu n'as pas plus de 15 questions,après il faut utiliser les chaînes,mais c'est bcp plus compliqué donc j'expliquerai que si on me le demande ^^
|
 |
|
| |
Darius
Invité
|
Posté le : Lun 20 Sep 2010, 22:42
|
|
|
J'ai essayer avec Goto et Lbl mais j'y arive pas :
| Code | :entAléat(1,2,3)->Z
:If Z=1
:Then
:Goto N
:Else
:If Z=2
:Then
:Goto O
:Else
:If Z=3
:Then
:Goto P
:End
:End
:End
:Lbl N
:Disp "PACTE DE VARSOVIE"
:Prompt A
:If A=1955
:Then
:Disp "BRAVO"
:Else
:Disp "FAUX, 1955"
:End
:Lbl O
:Disp "QUESTION"
:Prompt B
... et ainsi de suite ... |
|
| |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Lun 20 Sep 2010, 22:56
|
|
|
C'est presque ça mais il reste quelques choses à corriger:
-Ton entaléat contient 3 argument au lieu de deux (le nombre maximal et minimal).
-Si après ton If tu n'a qu'une commande, pas besoin de Then/else/end.
-A la fin de ton lbl N/O/P, rajoute un goto pour aller vers la fin du programme sinon les questions vont défilée car elles se suivent.
-Tu peut mettre un Input pour mettre ta question et si tu n'a pas assez de place, rajoute un Disp avant.
Sangohan38
|
 |
|
| |
Darius
Invité
|
Posté le : Lun 20 Sep 2010, 23:03
|
|
|
J'ai effectuer les corrections et ca fonctionne ! J'ai plus qu'a rajouter quelques questions et c'est fini.
Encore merci !
|
| |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Lun 20 Sep 2010, 23:27
|
|
|
Par contre deux corrections,pas besoin de mettre 3 end à la fin d'un if/then/end,même si tu as 3 then,un seul end suffit.
Et surtout,(sangohan aurait dû le voir question économie d'octets ^^) pas besoin de mettre la vérification avec "bravo" ou "la réponse était dans chaque lbl,il vaut mieux mettre un lbl qui fait n'importe quelle vérif,et un goto dans chaque lbl,je donne un exemple parce que je ne suis pas clair.
| Code | :entaléat(1,3->Z la parenthèse avant le "->" n'est pas obligatoire
:If Z=1
:Goto N
:If Z=2
:Goto O
:If Z=3
:Goto P
:Lbl N
:Disp "PACTE DE VARSOVIE ?
:1995->A
:Goto Q
:Lbl O
:Disp "QUESTION
:112->A
:Goto Q
:Lbl P
:Disp "QI DE REZUS ?
:248->A
:Lbl Q pas besoin de goto ici
:Prompt B
:If B=A
:Disp "BRAVO
:If B#A
:Disp "FAUX |
Et juste après ça tu peux même rajouter If Z=3 et A<248:Disp "QUOIIIIIII ?!!!!
|
 |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |