π
<-

probleme sur mon morpion

probleme sur mon morpion

Unread postby jbofcalc » 02 Apr 2010, 23:06

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
Touche le fond, mais creuse encore. Arrivera peut etre un jour a trouver du pétrole .
User avatar
jbofcalc
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 44%
 
Posts: 12
Joined: 30 Mar 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nd

Re: probleme sur mon morpion

Unread postby tama » 03 Apr 2010, 12:16

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 :D
Bon courage
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

Re: probleme sur mon morpion

Unread postby Yak » 03 Apr 2010, 12:59

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.
Segata sanshiro ! せがた三四郎
Prosternez vous devant le Dr. Lakav !
User avatar
Yak
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 70.8%
 
Posts: 3382
Joined: 04 Feb 2005, 00:00
Location: Le nez dans mon ordi
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI

Re: probleme sur mon morpion

Unread postby jbofcalc » 04 Apr 2010, 19:21

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
Touche le fond, mais creuse encore. Arrivera peut etre un jour a trouver du pétrole .
User avatar
jbofcalc
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 44%
 
Posts: 12
Joined: 30 Mar 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nd

Re: probleme sur mon morpion

Unread postby tama » 04 Apr 2010, 20:57

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 :p)
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

Re: probleme sur mon morpion

Unread postby jbofcalc » 05 Apr 2010, 17:04

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
Touche le fond, mais creuse encore. Arrivera peut etre un jour a trouver du pétrole .
User avatar
jbofcalc
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 44%
 
Posts: 12
Joined: 30 Mar 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nd

Re: probleme sur mon morpion

Unread postby jacques » 05 Apr 2010, 17:42

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. :#langue#:
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 !!
User avatar
jacques
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 14.9%
 
Posts: 2057
Images: 0
Joined: 25 Aug 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: prépa PSI

Re: probleme sur mon morpion

Unread postby jbofcalc » 05 Apr 2010, 17:55

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 )
Touche le fond, mais creuse encore. Arrivera peut etre un jour a trouver du pétrole .
User avatar
jbofcalc
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 44%
 
Posts: 12
Joined: 30 Mar 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nd

Re: probleme sur mon morpion

Unread postby tama » 05 Apr 2010, 19:00

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
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

Re: probleme sur mon morpion

Unread postby jbofcalc » 06 Apr 2010, 20:35

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 .
User avatar
jbofcalc
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 44%
 
Posts: 12
Joined: 30 Mar 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nd

Next

Return to TI-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 5 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1988 utilisateurs:
>1972 invités
>9 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)