bonjour j'ai crée un jeu de morpion sympa sans utiliser le mode graphique (je ne sais pas l'utiliser ^^")
et dansce programme une fois sur deux lorsque je lance le programme en mode un joueur au bout du 6ème tour
le programme s'arrete en faisant "done"
je vus recopie le programme meme si je doute que beaucoup de monde aura le courage de le recopier (8page) ^^ mais si quelqun pouvait arriver a voir mon erreur (j'ai regardé + de 10 fois mon programme sans la trouvé)
Lbl 3
EffEcr
RappelImage 1
Pause
0-W
0-S
0-B
0-C
0-D
0-E
0-V
0-F
0-G
0-H
0-I
0-J
Menu("MORPION","JOUER",4,"REGLE DU JEU",5,"QUITTER",6)
Lbl 5
Disp "FAIRE UNE LIGNE"
Disp "DE 3 CROIX OU
Disp "3 RONDS"
Pause
EffEcr
Goto 3
Lbl 4
Menu("NBRE DE JOUEURS","UN",51,"DEUX",52)
Lbl 51
W+1-W
Lbl 52
While V=0
Lbl 2
EffEcr
Output(6,1,"J1"
Output(1,8,"7 8 9")
Output(3,8,"4 5 6")
Output(5,8,"1 2 3")
If W=1
Then
entAléat(1,9)-A
End
If W=/1 (=/ veut dire inégale)
Then
Input "OU ?",A
End
EffEcr
If A=7
Then
If B=1 ou B=-1
Then
S-1-S
Goto 2
End
B-1-B
S+1-S
End
If A=8
Then
If C=1 ou C=-1
Then
S-1-S
Goto 2
End
C-1-C
S+1-S
End
If A=9
Then
If D=1 ou D=-1
Then
S-1-S
Goto 2
End
D-1-D
S+1-S
End
If A=4
Then
If E=1 ou E=-1
Then
S-1-S
Goto 2
End
E-1-E
S+1-S
End
If A=5
Then
If F=1 ou F=-1
Then
S-1-S
Goto 2
End
F-1-F
S+1-S
End
If A=6
Then
If G=1 ou G-1
Then
S-1-S
Goto 2
End
G-1-G
S+1-S
End
If A=1
Then
If H=1 ou H=-1
Then
S-1-S
Goto 2
End
H-1-H
S+1-S
End
If A=2
Then
If I=1 ou I=-1
Then
S-1-S
Goto 2
End
I-1-I
S+1-S
End
If A=3
Then
If J=1 ou J=-1
Then
S-1-S
Goto 2
End
J-1-J
S+1-S
End
For(X,1,13)
Output(1,X,"-")
Output(3,X,"-")
Output(5,X,"-")
Output(7,X,"-")
End
For(X,1,14,4)
Output(2,X,"I"
Output(4,X,"I"
Output(6,X,"I"
End
If B=1
Then
Output(2,2,"OOO"
End
If B=-1
Then
Output(2,2,"XXX")
End
If C=1
Then
Output(2,6,"OOO"
End
If C=-1
Then
Output(2,6,"XXX")
End
If D=1
Then
Output(2,10,"OOO"
End
If D=-1
Then
Output(2,10,"XXX")
End
If E=1
Then
Output(4,2,"OOO"
End
If E=-1
Then
Output(4,2,"XXX")
End
If F=1
Then
Output(4,6,"OOO"
End
If F=-1
Then
Output(4,6,"XXX")
End
If G=1
Then
Output(4,10,"OOO"
End
If G=-1
Then
Output(4,10,"XXX")
End
If H=1
Then
Output(6,2,"OOO"
End
If H=-1
Then
Output(6,2,"XXX"
End
If I=1
Then
Output(6,6,"OOO"
End
If I=1
Then
Output(6,6,"XXX")
End
If J=1
Then
Output(6,10,"OOO"
End
If J=-1
Then
Output(6,10,"XXX")
End
If B+C+D=3 ou E+F+G=-3 ou H+I+J=-3 ou B+E+H=-3 ou C+F+I=-3 ou D+G+J=-3
Then
Output(8,1,"J1 GAGNE")
Pause
V-1-V
Goto 10
End
If B+F+J=-3 ou D+F+H=-3
Then
Output(8,1,"J1 GAGNE"
Pause
V-1-V
Goto 10
End
If S=9
Then
Output(8,1,"EGALITE"
Pause
V-1-V
Goto 10
End
Pause
Lbl 1
EffEcr
Output(6,1,"J2"
Output(1,8,"7 8 9")
Output(3,8,"4 5 6")
Output(5,8,"1 2 3")
Input "OU ?",R
If R=7
Then
If B=-1 ou B=1
Then
S-1-S
Goto 1
End
B+1-B
S+1-S
End
If R=8
Then
If C=-1 ou C=1
Then
S-1-S
Goto 1
End
C+1-C
S+1-S
End
If R=9
Then
If D=1 ou D=-1
Then
S-1-S
Goto 1
End
D+1-D
S+1-S
End
If R=4
Then
If E=1 ou E=-1
Then
S-1-S
Goto 1
End
E+1-E
S+1-S
End
If R=5
Then
If F=1 ou F=-1
Then
S-1-S
Goto 1
End
F+1-F
S+1-S
End
If R=6
Then
If G=1 ou G=-1
Then
S-1-S
Goto 1
End
G+1-G
S+1-S
End
If R=1
Then
If H=1 ou H=-1
Then
S-1-S
Goto 1
End
H+1-H
S+1-S
End
If R=2
Then
If I=1 ou I=-1
Then
S-1-S
Goto 1
End
I+1-I
S+1-S
End
If R=3
Then
If J=1 ou J=-1
Then
S-1-S
Goto 1
End
J+1-J
S+1-S
End
For(X,1,14)
Output(1,X,"-")
Output(3,X,"-")
Output(5,X,"-")
Output(7,X,"-")
End
For(X,1,14,4)
Output(2,X,"I")
Output(4,X,"I")
Output(6,X,"I")
End
If B=-1
Then
Output(2,2,"XXX"
End
If B=1
Then
Output(2,2,"OOO")
End
If C=-1
Then
Output(2,6,"XXX"
End
If C=1
Then
Output(2,6,"OOO"
End
If D=-1
Then
Output(2,10,"XXX"
End
If D=1
Then
Output(2,10,"OOO"
End
If E=-1
Then
Output(4,2,"XXX"
End
If E=1
Then
Output(4,2,"OOO"
End
If F=-1
Then
Output(4,6,"XXX"
End
If F=1
Then
Output(4,6,"OOO"
End
If G=-1
Then
Output(4,10,"XXX"
End
If G=1
Then
Output(4,10,"OOO"
End
If H=-1
Then
Output(6,2,"XXX"
End
If H=1
Then
Output(6,2,"OOO"
End
If I=-1
Then
Output(6,6,"XXX"
End
If I=1
Then
Output(6,6,"OOO"
End
If J=-1
Then
Output(6,10,"XXX"
End
If J=1
Then
Output(6,10,"OOO"
End
If B+C+D=3 ou E+F+G=3 ou H+I+J=3
Then
Output(8,1,"J2 GAGNE"
Pause
V-1-V
Goto 10
End
If B+E+H=3 ou C+F+I=3 ou D+G+J=3
Then
Output(8,1,"J2 GAGNE"
Pause
V-1-V
Goto 10
End
If B+F+J=3 ou D+F+H=3
Then
Output(8,1,"J2 GAGNE")
Pause
V-1-V
Goto 10
End
If S=9
Then
Output(8,1,"EGALITE"
Pause
V-1-V
Goto 10
End
Pause
End
Lbl 10
While V=-1
Menu("FIN DE PARTIE","REJOUER",3,"QUITTER",6
EffEcr
End
Lbl 6
EffEcr
probleme sur mon morpion
23 posts
• Page 1 of 3 • 1, 2, 3
probleme sur mon morpion
Touche le fond, mais creuse encore. Arrivera peut etre un jour a trouver du pétrole .
-
jbofcalc
Niveau 3: MH (Membre Habitué)- Posts: 12
- Joined: 30 Mar 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 2nd
Re: probleme sur mon morpion
Plop,
Effectivement, en regardant le code comme ça on peut pas trop deviner où est l'erreur, mais c'est une bonne chose d'avoir mis le code, en général si ce n'est qu'une partie qui bug pas besoin de mettre tout le code mais seulement la partie qui foire.
Bon sinon, pour (tenter de) résoudre ton problème, il va falloir débugger légèrement ton programme, c'est-à-dire savoir ce qui est fait et quand, en ajoutant des "Disp " ou "Disp message" à certains endroits (des "points-clés") et en vérifiant que l'affichage se fait bien dans l'ordre que tu souhaites
Evite les goto sinon, à ton niveau ce n'est pas encore bien grave mais essaies déjà d'en minimiser l'utilisation (utilises des boucles for ou while)
Il y a sûrement aussi un moyen d'optimiser tous les
If ...
Goto 1
mais j'avoue avoir lu le code en diagonale, donc je sais pas trop ce qui est censé se faire, c'est pour ça qu'il faut ajouter quelques commentaires à ton code si tu veux nous le montrer, le but étant qu'une personne ne connaissant pas le programme (nous en l'occurence) puisse quand même comprendre comment il fonctionne.
Voilà c'est tout ce que j'ai à dire pour le moment, d'autres personnes auront peut-être trouvé ce qui se passe d'ici mon prochain message
Bon courage
Effectivement, en regardant le code comme ça on peut pas trop deviner où est l'erreur, mais c'est une bonne chose d'avoir mis le code, en général si ce n'est qu'une partie qui bug pas besoin de mettre tout le code mais seulement la partie qui foire.
Bon sinon, pour (tenter de) résoudre ton problème, il va falloir débugger légèrement ton programme, c'est-à-dire savoir ce qui est fait et quand, en ajoutant des "Disp " ou "Disp message" à certains endroits (des "points-clés") et en vérifiant que l'affichage se fait bien dans l'ordre que tu souhaites
Evite les goto sinon, à ton niveau ce n'est pas encore bien grave mais essaies déjà d'en minimiser l'utilisation (utilises des boucles for ou while)
Il y a sûrement aussi un moyen d'optimiser tous les
If ...
Goto 1
mais j'avoue avoir lu le code en diagonale, donc je sais pas trop ce qui est censé se faire, c'est pour ça qu'il faut ajouter quelques commentaires à ton code si tu veux nous le montrer, le but étant qu'une personne ne connaissant pas le programme (nous en l'occurence) puisse quand même comprendre comment il fonctionne.
Voilà c'est tout ce que j'ai à dire pour le moment, d'autres personnes auront peut-être trouvé ce qui se passe d'ici mon prochain message

Bon courage
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`
Pas de support par MP, merci.
Pas de support par MP, merci.
-
tama
Niveau 14: CI (Calculateur de l'Infini)- Posts: 10994
- Joined: 19 Dec 2005, 00:00
- Location: /dev/null mais je survis :)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: epita ING3 \o
Re: probleme sur mon morpion
Arg, je ne me souvenais pas que c'était à ce point illisible du basic.
Et comme le dit Tama, le goto, c'est vraiment à éviter. Ça peut être très bien utilisé, mais c'est illisible deux jours après. Et ne parlons même pas de la difficulté de lecture par une tierce personne.
D'ailleurs, le deboggage devient bien plus difficile et tu risques de te retrouver dans des cas que tu n'as pas prévu.
Et comme le dit Tama, le goto, c'est vraiment à éviter. Ça peut être très bien utilisé, mais c'est illisible deux jours après. Et ne parlons même pas de la difficulté de lecture par une tierce personne.
D'ailleurs, le deboggage devient bien plus difficile et tu risques de te retrouver dans des cas que tu n'as pas prévu.
Segata sanshiro ! せがた三四郎
Prosternez vous devant le Dr. Lakav !
Prosternez vous devant le Dr. Lakav !
-
Yak
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3382
- Joined: 04 Feb 2005, 00:00
- Location: Le nez dans mon ordi
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: PSI
Re: probleme sur mon morpion
j'ai enfin réussis a résoudre mon pb au fur et a mesure de faire des essais mon pb venait de l'entré aléatoire qui a chaque fois qu'elle se trompait réalisait une action (je ne sais pas laquelle) qui stoppait le programme j'ai donc résolut mon pb en modifiant l'ia de ma calculette ^^
( je ne republierais pas mon programme (17 pages word )je ne pense pas que quelqun le lira) (je suis un geek
( je ne republierais pas mon programme (17 pages word )je ne pense pas que quelqun le lira) (je suis un geek
Touche le fond, mais creuse encore. Arrivera peut etre un jour a trouver du pétrole .
-
jbofcalc
Niveau 3: MH (Membre Habitué)- Posts: 12
- Joined: 30 Mar 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 2nd
Re: probleme sur mon morpion
Bienvenue dans le monde des "geeks" mais un seul programme c'est pas assez pour être geek XD
Nan sérieusement, c'est cool que ça marche, maintenant si t'as le temps essaies d'optimiser ton programme, parce que 17 pages word pour un programme comme ça c'est pas top, bien sûr t'y connais pas grand-chose et tu viens juste de commencer mais y a largement de quoi réduire tout ça et le rendre plus efficace
Pis si t'es intéressé par la programmation, n'hésites pas à repasser ici, tu peux aussi prendre mon adresse MSN si tu veux (même si ça fait déjà pas mal de temps que j'ai plus touché à mes TI, mais j'devrais pas avoir de problèmes pour te répondre
)
Nan sérieusement, c'est cool que ça marche, maintenant si t'as le temps essaies d'optimiser ton programme, parce que 17 pages word pour un programme comme ça c'est pas top, bien sûr t'y connais pas grand-chose et tu viens juste de commencer mais y a largement de quoi réduire tout ça et le rendre plus efficace

Pis si t'es intéressé par la programmation, n'hésites pas à repasser ici, tu peux aussi prendre mon adresse MSN si tu veux (même si ça fait déjà pas mal de temps que j'ai plus touché à mes TI, mais j'devrais pas avoir de problèmes pour te répondre

`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`
Pas de support par MP, merci.
Pas de support par MP, merci.
-
tama
Niveau 14: CI (Calculateur de l'Infini)- Posts: 10994
- Joined: 19 Dec 2005, 00:00
- Location: /dev/null mais je survis :)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: epita ING3 \o
Re: probleme sur mon morpion
ok merci de ton aide, je pense avor fini d'optimiser mon programme maintenant me reste plus qu'a le réduire et si jamais j'ai un autre pb j'hesiterais pas à demandé ^^
(en ameliorant mon programme je suis passé a 22 pages
(en ameliorant mon programme je suis passé a 22 pages
Touche le fond, mais creuse encore. Arrivera peut etre un jour a trouver du pétrole .
-
jbofcalc
Niveau 3: MH (Membre Habitué)- Posts: 12
- Joined: 30 Mar 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 2nd
Re: probleme sur mon morpion
jbofcalc wrote:ok merci de ton aide, je pense avor fini d'optimiser mon programme maintenant me reste plus qu'a le réduire et si jamais j'ai un autre pb j'hesiterais pas à demandé ^^
(en ameliorant mon programme je suis passé a 22 pages
Ca serait plutôt de la désoptimisation alors.

Sublime Chevalier Elu des TI
Venez visiter mon site sur les TI : Ti Softwares !!
Jetez un coup d'œil à mes programmes pour TI !!
Vous voulez faire des super programmes pour votre TI z80 ? Alors apprenez l'Axe Parser !!
Venez visiter mon site sur les TI : Ti Softwares !!
Jetez un coup d'œil à mes programmes pour TI !!
Vous voulez faire des super programmes pour votre TI z80 ? Alors apprenez l'Axe Parser !!
-
jacques
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 2057
- Images: 0
- Joined: 25 Aug 2009, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: prépa PSI
Re: probleme sur mon morpion
oui enfin sa dépend du point de vue ^^
j'ai ajouté de l'ia et une meilleur visibilité et ai viré un truc inutile
mais tout cela m'a ajouté 5 pages (le principal pb, qui rajoute de la longueur a mon programme, est le fait d'avoir créé une partie pour j1 et une partie pour j2 qui sont pareil, a la difference de leur entré dans la grille: les croix pour l' un et les ronds pour l'autre )
j'ai ajouté de l'ia et une meilleur visibilité et ai viré un truc inutile
mais tout cela m'a ajouté 5 pages (le principal pb, qui rajoute de la longueur a mon programme, est le fait d'avoir créé une partie pour j1 et une partie pour j2 qui sont pareil, a la difference de leur entré dans la grille: les croix pour l' un et les ronds pour l'autre )
Touche le fond, mais creuse encore. Arrivera peut etre un jour a trouver du pétrole .
-
jbofcalc
Niveau 3: MH (Membre Habitué)- Posts: 12
- Joined: 30 Mar 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 2nd
Re: probleme sur mon morpion
Si t'as du code qui se ressemble, "factorise-le", dans ton cas tu peux utiliser une variable J qui vaut 0 ou 1 selon le joueur qui joue, puis à l'affichage selon la valeur de J tu affiches une croix ou un rond :
While 1
0 -J
...
If J=0 /* c'est le joueur 1 qui joue */
Then
Output A,B,"x"
Else
Output A,B,"o"
End
not(J-J
End
Pourquoi 0 ou 1 ? pour pouvoir "switcher" rapidement entre les 2 joueurs grâce à not() : not(A) vaut 1 si A = 0, ou 0 si A = 1, c'est pratique pour les jeux à 2 joueurs comme ça
While 1
0 -J
...
If J=0 /* c'est le joueur 1 qui joue */
Then
Output A,B,"x"
Else
Output A,B,"o"
End
not(J-J
End
Pourquoi 0 ou 1 ? pour pouvoir "switcher" rapidement entre les 2 joueurs grâce à not() : not(A) vaut 1 si A = 0, ou 0 si A = 1, c'est pratique pour les jeux à 2 joueurs comme ça
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`
Pas de support par MP, merci.
Pas de support par MP, merci.
-
tama
Niveau 14: CI (Calculateur de l'Infini)- Posts: 10994
- Joined: 19 Dec 2005, 00:00
- Location: /dev/null mais je survis :)
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: epita ING3 \o
Re: probleme sur mon morpion
je n'ai pas compris le truc du not(J->J) je ne comprend pas en quoi cela inverse le J=0 de plus dans mon programme une troisieme possibilité entre en compte celle de la présence de l'ia (le joueur a le choix entre jouer seul ou a deux )
Touche le fond, mais creuse encore. Arrivera peut etre un jour a trouver du pétrole .
-
jbofcalc
Niveau 3: MH (Membre Habitué)- Posts: 12
- Joined: 30 Mar 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 2nd
23 posts
• Page 1 of 3 • 1, 2, 3
Who is online
Users browsing this forum: ClaudeBot [spider] and 5 guests