[Need Help] Programme Table Multiplication
Posté le 19/09/2013 21:55
Bonjour tous le monde
Comme ça fait depuis le CM2 qu'on me dit que ça craint que je connaisse pas mes tables de multiplication j'ai décidé de faire un programme sur ma calto pour m’entraîner à programmer et à apprendre les table
J'ai rapidement fais le gros du code qui faisait bien ce que je voulais mais je veux le perfectionner. Cependant j'ai quelques détailles que je comprends pas trop comme: Comment gérer l'affichage du
"-Disp-" qui se met un peu au milieu de mon texte quand je lance le programme.
Mais aussi j'ai fais une grande boucle qui fait le gros du programme comme vous m'aviez dis de faire dans mon autre topic
Le problème c'est quand je lui demande de s'arrêter (en appuyant sur F1) elle ne le fais tout simplement pas.
Voilà mon code dans l'état actuel des choses, je pourrais mettre le fichier en ligne si vous le désirez.
Locate 1,2,"CHOISIR TABLE"
?→T
Do
If T>0
Then T→A
Else Int (9Ran# +1 )→A
IfEnd
Int (9Ran# +1)→B
Locate 1,2,A
Locate 2,2,"x"
Locate 3,2,B
Locate 4,2,"="
AxB→C
?→D
If D≠C
Then Locate 1,4,"FAUX"
Locate 1,5,"REPONSE:"
Locate 9,5,C◢
IfEnd
F+1→F
ClrText
If D=C
Then Locate 1,4,"BIEN"◢
IfEnd
V+1→V
ClrText
LpWhile Getkey≠47
Locate 1,1,"RESULTATS JUSTES:"
Locate 18,1,V
Locate 1,2,"RESULTATS FAUX:"
Locate 17,2,F◢
Merci d'avance à ce qui vont me répondre.
Citer : Posté le 23/09/2013 22:45 | #
Ah non mais le G c'est moi qui l'ai foutu à la place de F dans mon programme, (parce que F je l'ai déjà utilisé)
du coup c'était plutôt
Do
Getkey→G
LpWhile G=0
LpWhile G!=47
Sinon si c'est bien à moi que tu voulais envoyer un MP, je l'ai toujours pas reçu.
Citer : Posté le 23/09/2013 22:53 | #
Bon et bien au final, la réponse n'en reste pas néanmoins semblable :
Do // On initialise la boucle
Getkey→G // On demande une touche et on y attribue l'ID dans la variable G
LpWhile G=0 // Si G=0, la boucle se fini, sinon, elle retourne à Do
LpWhile G≠47 // Erreur : Il n'y à qu'une seule boucle ici ( un seule Do ) et G est forcément Inégal a 47 si il est égal a 0
---------------------
Mince, oui je me suis gouré de personne et j'ai envoyé le message a maliafo ._.
Citer : Posté le 23/09/2013 22:56 | #
S'pas grave, ça peut arriver de se tromper
Avec la semelle de nos chaussures, on en fait autant
Citer : Posté le 23/09/2013 22:58 | #
Ouais fin là, paye mon insomnie quoi :x x')
Citer : Posté le 27/09/2013 22:07 | #
Voilà après une semaine, le programme est enfin fini, grâce à Thiladon qui m'a beaucoup aidé en MP
Voici le programme qu'il a fait en avance pour m'aider et qu'il m'a donné à la fin:
0->A~Z
Do
ClrText
"Choisir table "?->T
If T≥0 And T≤10
Then T->A
Else If T<0
Then Int (9Ran# +1)->A
IfEnd:IfEnd
Int (9Ran# +1)->B
AxB->C
Locate 3,2,"x"
Locate 4,2,B
"= "?-> D
If D!=C
Then "Faux, la bonne réponse etait :"
Locate 12,6,C
F+1->F
Else "Bonne reponse"
V+1->V
IfEnd
While Getkey
WhileEnd
Do
Getkey->G
LpWhile Not G
LpWhile G !=47
ClrText
Locate 1,1,"Bonne réponse:"
Locate 1,2,V
Locate 1,3,"Mauvaises réponses:"
Locate 1,4,F
Do
While Getkey
WhileEnd
Getkey->G
LpWhile Not G
Stop
Mais je m'en suis pas pour autant arrêté là donc voici mon code final:
Locate 7,3,"TABLE DE"
Locate 4,4,"MULTIPLICATION"
Do:LpWhile Getkey=31
Do:LpWhile Getkey!=31
ClrText
0->A~Z
ClrText
"CHOISIR TABLE "
?->T
If T>0
Then T->A
Else If T=0
Then Int (9Ran# +1)->A
IfEnd:IfEnd
Int (9Ran# +1)->B
AxB->C
Locate 2,2,A
Locate 3,2,"x"
Locate 4,2,B
Locate 5,2,"="
Locate 1,4,"SCORE:"
Locate 7,4,V-F
?-> D
If D!=C
Then "FAUX"
Locate 1,5,"REPONSE:"
Locate 9,5,C
F+1->F
Else Locate 1,4,"BONNE REPONSE"
V+1->V
IfEnd
While Getkey
WhileEnd
Do
Getkey->G
LpWhile Not G
LpWhile G !=47
ClrText
Locate 1,2,"RESULTATS JUSTES:"
Locate 18,2,V
Locate 1,3,"RESULTATS FAUX:"
Locate 17,3,F
Locate 1,5,"SCORE:"
Locate 7,5,V-F
Do
While Getkey
WhileEnd
Getkey->G
LpWhile Not G
Stop
Je vais peut être améliorer un jour le système de score pour qu'il soit plus gros. Parce que voir des trucs comme "15" en score c'est tout pourrie par rapport à des trucs comme "2354"
Merci à vous tous en tout cas, j'ai appris énormément de choses en codant ce programme avec votre aide
Citer : Posté le 28/09/2013 10:41 | #
Tant mieux, j'espère que tu sortiras de beaux programmes
Citer : Posté le 28/09/2013 11:36 | #
While Getkey
WhileEnd
Getkey->G
LpWhile Not G
Je comprends pas trop le principe de cette boucle, normalement, il n'y aura jamais de valeurs dans G, non ?
Citer : Posté le 28/09/2013 11:37 | #
Ben si
là, c'est "tant que G=0"
du coup, G aura une valeur en sortie de boucle
Ajouté le 28/09/2013 à 11:37 :
Quoi que j'avais pas vu le dessus de la boucle
T'as raison
Citer : Posté le 28/09/2013 12:19 | #
Si on met pas la boucle au dessus, le programme va trop vite et du coup le
LpWhile Not G
= la dernière touche que tu es appuyé, sans même avoir pu voir que tu devait appuyer sur une touche, ce qui fait que le score n’apparaît pas et le programme se finit sans qu'on ai vu notre score
Citer : Posté le 28/09/2013 17:47 | #
Je suis tout à fait d'accord, mais il est totalement illogique de mettre le while dans le do. Normalement, tu devrais faire ça :
Do
Getkey →G
LpWhile Not G
Citer : Posté le 28/09/2013 20:21 | #
Lpwhile Not Getkey
est suffisant d'ailleurs
Citer : Posté le 28/09/2013 23:09 | #
" il est totalement illogique de mettre le while dans le do"
Ah oui je me souviens que ça m'avais choqué moi aussi, puis j'ai complètement oublié
Citer : Posté le 28/09/2013 23:26 | #
Ah mais je l'avais pas mis dans le Do, ._.
Par contre je note le truc de Positon
Citer : Posté le 29/09/2013 12:04 | #
Oui, mais si je ne me trompe pas, au départ, il voulait faire en sorte que l'on quitte seulement en appuyant sur ESC, non ?
Citer : Posté le 01/10/2013 20:15 | #
Le truc de Position fonctionne
Merci encore