Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 5172
Réponses : 17
Type : discussion
Etat : réponses autorisées

Morpion

Sangohan38 le 09/04/2007 à 19:32
Code
:FullScreen
:0->Xmin
:94->Xmax
:0->Ymin
:62->Ymax
:ClrDraw
:CoordOff
:GridOff
:AxesOff
:Horizontal 0
:Horizontal 62
:Vertical 0
:Vertical 94
:For(A,1,07
:Text(10,A," SANGOHAN38"
:End
:For(A,1,10
:Text(A,53," PRESENTE:"
:End
:For(A,1,34
:Text(28,A," MORPION"
:End
:Text(52,27,"VERSION 2.0"
:Pause
:ClrDraw
:Lbl 1
:Menu("MORPION:","JOUER",2,"INSTRUCTIONS",3,"QUITTER",4
:Lbl 4
:ClrDraw
:ClrHome
:Output(1,1,"      "
:ClrList L1
:Stop
:Lbl 3
:ClrDraw
:Text(1,1,"POUR JOUER, ON UTILISE LES"
:Text(7,1,"TOUCHES [1] A [9]."
:Text(15,1,"APPUYES SUR LES TOUCHES ET
:Text(22,1,"APRES SUR [ENTER]."
:Line(52,30,52,0
:Line(22,30,22,00
:Line(52,30,22,30
:Line(52,20,22,20
:Line(52,10,22,10
:Line(52,00,22,00
:Line(42,30,42,0
:Line(32,30,32,0
:0->B
:Text(54,26,"1
:Text(54,36,"2
:Text(54,46,"3
:Text(44,26,"4
:Text(44,36,"5
:Text(44,46,"6
:Text(34,46,"9
:Text(34,36,"8
:Text(34,26,"7
:Lbl W
:If B[différent de]0:Goto X
:getKey->B
:If B=105:Goto 1
:If B=92:Text(54,26,"X
:If B=93:Text(54,36,"X
:If B=94:Text(54,46,"X
:If B=82:Text(44,26,"X
:If B=83:Text(44,36,"X
:If B=84:Text(44,46,"X
:If B=72:Text(34,26,"X
:If B=73:Text(34,36,"X
:If B=74:Text(34,46,"X
:1->[THETA]
:Goto W
:Lbl X
:[THETA]+1->[THETA]
:If [THETA][différent de]7:Goto X
:If B=92:Text(54,26,"1
:If B=93:Text(54,36,"2
:If B=94:Text(54,46,"3
:If B=82:Text(44,26,"4
:If B=83:Text(44,36,"5
:If B=84:Text(44,46,"6
:If B=72:Text(34,26,"7
:If B=73:Text(34,36,"8
:If B=74:Text(34,46,"9
:0->B
:Goto W
:Lbl 2
:ClrDraw
:1->A
:ClrList L1
:9->dim L1
:Line(32,10,32,40
:Line(42,10,42,40
:Line(52,10,52,40
:Line(62,10,62,40
:Line(32,10,62,10
:Line(32,20,62,20
:Line(32,30,62,30
:Line(32,40,62,40
:Text(1,31,"JOUEUR"
:Lbl 5
:1->A
:Text(1,57,A
:1->X
:getKey->B
:If B=92:Goto C
:If B=93:Goto D
:If B=94:Goto E
:If B=82:Goto 9
:If B=83:Goto A
:If B=84:Goto B
:If B=72:Goto 6
:If B=73:Goto 7
:If B=74:Goto 8
:Goto 5
:Lbl F
:2->A
:Text(1,57,A
:4->X
:getKey->B
:If B=92:Goto C
:If B=93:Goto D
:If B=94:Goto E
:If B=82:Goto 9
:If B=83:Goto A
:If B=84:Goto B
:If B=72:Goto 6
:If B=73:Goto 7
:If B=74:Goto 8
:Goto F
:Lbl 6
:24->S
:36->N
:7->O
:Lbl I
:If X=1 and L1(O)[différent de]0:Goto 5
:If X=4 and L1(O)[différent de]0:Goto F
:If L1(O)+X=1:L1(O)+X->L1(O)
:If L1(O)=1:Text(S,N,"X"
:If F=1 and L1(O)=1:Goto G
:If L1(O)+X=4:L1(O)+X->L1(O)
:If L1(O)=4:Text(S,N,"O"
:If F=1 and L1(O)=4:Goto H
:pxl-Test(S+1,N->F
:Goto I
:Lbl 7
:24->S
:46->N
:8->O
:Goto I
:Lbl 8
:24->S
:56->N
:9->O
:Goto I
:Lbl 9
:34->S
:36->N
:4->O
:Goto I
:Lbl A
:34->S
:46->N
:5->O
:Goto I
:Lbl B
:34->S
:56->N
:6->O
:Goto I
:Lbl C
:44->S
:36->N
:1->O
:Goto I
:Lbl D
:44->S
:46->N
:2->O
:Goto I
:Lbl E
:44->S
:56->N
:3->O
:Goto I
:Lbl M
:If L1(7)+L1(8)+L1(9)=3 or L1(7)+L1(8)+L1(9)=12
:Line(32,35,62,35
:If L1(4)+L1(5)+L1(6)=3 or L1(4)+L1(5)+L1(6)=12
:Line(32,25,62,25
:If L1(1)+L1(2)+L1(3)=3 or L1(1)+L1(2)+L1(3)=12
:Line(32,15,62,15
:If L1(7)+L1(4)+L1(1)=3 or L1(7)+L1(4)+L1(1)=12
:Line(37,40,37,10
:If L1(8)+L1(5)+L1(2)=3 or L1(8)+L1(5)+L1(2)=12
:Line(47,40,47,10
:If L1(9)+L1(6)+L1(3)=3 or L1(9)+L1(6)+L1(3)=12
:Line(57,40,57,10
:If L1(7)+L1(5)+L1(3)=3 or L1(7)+L1(5)+L1(3)=12
:Line(32,40,62,10
:If L1(9)+L1(5)+L1(1)=3 or L1(9)+L1(5)+L1(1)=12
:Line(62,40,32,10
:Text(7,33,"GAGNE"
:Pause
:Goto 1
:Lbl G
:If L1(1)+L1(2)+L1(3)=3 or L1(4)+L1(5)+L1(6)=3 or L1(7)+L1(8)+L1(9)=3 or L1(1)+L1(4)+L1(7)=3 or L1(2)+L1(5)+L1(8)=3
or L1(3)+L1(6)+L1(9)=3 or L1(1)+L1(5)+L1(9)=3 or L1(3)+L1(5)+L1(7)=3
:Goto M
:If L1(1)+L1(2)+L1(3)+L1(4)+L1(5)+L1(6)+L1(7)+L1(8)+L1(9)=21:Goto Y
:If L1(1)+L1(2)+L1(3)[différent de]3 and L1(4)+L1(5)+L1(6)[différent de]3 and L1(7)+L1(8)+L1(9)[différent de]3
and L1(1)+L1(4)+L1(7)[différent de]3 and L1(2)+L1(5)+L1(8)[différent de]3 and L1(3)+L1(6)+L1(9)[différent de]3
and L1(1)+L1(5)+L1(9)[différent de]3 and L1(3)+L1(5)+L1(7)[différent de]3
:Goto F
:Lbl Y
:Text(1,28,"    EGALITE     "
:Pause
:Goto 1
:Lbl H
:If L1(1)+L1(2)+L1(3)=12 or L1(4)+L1(5)+L1(6)=12 or L1(7)+L1(8)+L1(9)=12 or L1(1)+L1(4)+L1(7)=12 or L1(2)+L1(5)+L1(8)=12
or L1(3)+L1(6)+L1(9)=12 or L1(1)+L1(5)+L1(9)=12 or L1(3)+L1(5)+L1(7)=12
:Goto M
:If L1(1)+L1(2)+L1(3)[différent de]12 and L1(4)+L1(5)+L1(6)[différent de]12 and L1(7)+L1(8)+L1(9)[différent de]12
and L1(1)+L1(4)+L1(7)[différent de]12 and L1(2)+L1(5)+L1(8)[différent de]12 and L1(3)+L1(6)+L1(9)[différent de]12
and L1(1)+L1(5)+L1(9)[différent de]12 and L1(3)+L1(5)+L1(7)[différent de]12
:Goto 5
programath le 31/03/2011 à 13:38
Tout ça pour un ptit morpion de rien du tout que l'on fais en 2 sec sur feuille crazy.gif
Bravo !
( et désolé d'avoir remonté ce poste qui date maintenant...)
Tigre-obscure le 02/06/2011 à 21:13
Juste une question. Pourrais-tu me la traduire en Français Stp cry.gif Parce que j'ai un peu de mal avec le TI 82 stats.fr :x
linkakro le 02/06/2011 à 22:14
Article de sangohan38 (périmé)
catalogue complet et bilingue de persalteas
Tigre-obscure le 02/06/2011 à 22:35
Merci j'avais pas pensé ici ^^".
J'ai un problème sur cette ligne
Code
pxl-Test(S+1,N->F

Ma calculette bug et quand j'appuie sur [On] il met une erreur sur cette ligne.
J'ai vérifié si c'étais une faute de frappe mais non :x cry.gif

Et quand je joue, le Joueur 1 joue 2 fois c'est normal? Parce que un Morpion normal c'est 1 fois chacun ^^"
sandro le 02/06/2011 à 22:56
Allez, si t'a trop la flèmme de tout chercher et pour tous les autres parresseux posséceurs d'une TI82stats.fr

Code
:Plein          //menu mode
:0->Xmin
:94->Xmax
:0->Ymin
:62->Ymax
:EffDessib
:CoorNAff
:QuadNAff
:AxesNAff
:Horizontale 0
:Horizontale 62
:Verticale 0
:Verticale 94
:For(A,1,07
:Texte(10,A," SANGOHAN38"        //ici guillemet à enlever
:End
:For(A,1,10
:Texte(A,53," PRESENTE:"       //ici guillemet à enlever
:End
:For(A,1,34
:Texte(28,A," MORPION"       //ici guillemet à enlever
:End
:Texte(52,27,"VERSION 2.0"       //ici guillemet à enlever
:Pause
:EffDessin
:Lbl 1
:Menu("MORPION:","JOUER",2,"INSTRUCTIONS",3,"QUITTER",4
:Lbl 4
:EffDessin
:EffEcran
:Output(1,1,"      "       //ici guillemet à enlever
:EffListe L1
:Stop
:Lbl 3
:EffEcran
:Texte(1,1,"POUR JOUER, ON UTILISE LES"       //ici guillemet à enlever
:Texte(7,1,"TOUCHES [1] A [9]."       //ici guillemet à enlever
:Texte(15,1,"APPUYES SUR LES TOUCHES ET
:Texte(22,1,"APRES SUR [ENTER]."       //ici guillemet à enlever
:Ligne(52,30,52,0
:Ligne(22,30,22,00
:Ligne(52,30,22,30
:Ligne(52,20,22,20
:Ligne(52,10,22,10
:Ligne(52,00,22,00
:Ligne(42,30,42,0
:Ligne(32,30,32,0
:0->B                      //remplacer par EffVar BTexte(54,26,"1
:Texte(54,26,"1
:Texte(54,36,"2
:Texte(54,46,"3
:Texte(44,26,"4
:Texte(44,36,"5
:Texte(44,46,"6
:Texte(34,46,"9
:Texte(34,36,"8
:Texte(34,26,"7
:Lbl W
:If B[différent de]0:Goto X           //suprimer le [différent de]0
:CodeTouche->B
:If B=105:Goto 1
:If B=92:Texte(54,26,"X
:If B=93:Texte(54,36,"X
:If B=94:Texte(54,46,"X
:If B=82:Texte(44,26,"X
:If B=83:Texte(44,36,"X
:If B=84:Texte(44,46,"X
:If B=72:Texte(34,26,"X
:If B=73:Texte(34,36,"X
:If B=74:Texte(34,46,"X
:1->[THETA]
:Goto W
:Lbl X
:[THETA]+1->[THETA]
:If [THETA][différent de]7:Goto X
:If B=92:Texte(54,26,"1
:If B=93:Texte(54,36,"2
:If B=94:Texte(54,46,"3
:If B=82:Texte(44,26,"4
:If B=83:Texte(44,36,"5
:If B=84:Texte(44,46,"6
:If B=72:Texte(34,26,"7
:If B=73:Texte(34,36,"8
:If B=74:Texte(34,46,"9
:0->B                //à remplacer par EffVar BGoto W
:Goto W
:Lbl 2
:EffDessin
:1->A
:EffListe L1
:9->dim L1
:Ligne(32,10,32,40
:Ligne(42,10,42,40
:Ligne(52,10,52,40
:Ligne(62,10,62,40
:Ligne(32,10,62,10
:Ligne(32,20,62,20
:Ligne(32,30,62,30
:Ligne(32,40,62,40
:Texte(1,31,"JOUEUR"       //guillemet à supprimer
:Lbl 5
:1->A
:Texte(1,57,A
:1->X
:CodeTouche->B
:If B=92:Goto C
:If B=93:Goto D
:If B=94:Goto E
:If B=82:Goto 9
:If B=83:Goto A
:If B=84:Goto B
:If B=72:Goto 6
:If B=73:Goto 7
:If B=74:Goto 8
:Goto 5
:Lbl F
:2->A
:Texte(1,57,A
:4->X
:CodeTouche->B
:If B=92:Goto C
:If B=93:Goto D
:If B=94:Goto E
:If B=82:Goto 9
:If B=83:Goto A
:If B=84:Goto B
:If B=72:Goto 6
:If B=73:Goto 7
:If B=74:Goto 8
:Goto F
:Lbl 6
:24->S
:36->N
:7->O
:Lbl I
:If X=1 et L1(O)[différent de]0:Goto 5      //enlever le " ) [différent de]0 "
:If X=4 et L1(O)[différent de]0:Goto F      //enlever le " ) [différent de]0 "
:If L1(O)+X=1:L1(O)+X->L1(O)   //à remplacer par :If 1=X+L1(O:X+L1(O->L1(O
:If L1(O)=1:Texte(S,N,"X"   //à remplacer par :If 1=L1(O:Texte(S,N,"X
:If F=1 et L1(O)=1:Goto G    //remplacer L1(O)=1 par 1=L1(O
:If L1(O)+X=4:L1(O)+X->L1(O)   //à remplacer par If 4=X+L1(O:X+L1(O->L1(O
:If L1(O)=4:Texte(S,N,"O"    //à remplacer par If 4=L1(O:Texte(S,N,"O
:If F=1 et L1(O)=4:Goto H    //remplacer L1(O)=4 par 4=L1(O
:pxl-Test(S+1,N->F
:Goto I
:Lbl 7
:24->S
:46->N
:8->O
:Goto I
:Lbl 8
:24->S
:56->N
:9->O
:Goto I
:Lbl 9
:34->S
:36->N
:4->O
:Goto I
:Lbl A
:34->S
:46->N
:5->O
:Goto I
:Lbl B
:34->S
:56->N
:6->O
:Goto I
:Lbl C
:44->S
:36->N
:1->O
:Goto I
:Lbl D
:44->S
:46->N
:2->O
:Goto I
:Lbl E
:44->S
:56->N
:3->O
:Goto I
:Lbl M
:If L1(7)+L1(8)+L1(9)=3 ou L1(7)+L1(8)+L1(9)=12
:Ligne(32,35,62,35
:If L1(4)+L1(5)+L1(6)=3 ou L1(4)+L1(5)+L1(6)=12
:Ligne(32,25,62,25
:If L1(1)+L1(2)+L1(3)=3 ou L1(1)+L1(2)+L1(3)=12
:Ligne(32,15,62,15
:If L1(7)+L1(4)+L1(1)=3 ou L1(7)+L1(4)+L1(1)=12
:Ligne(37,40,37,10
:If L1(8)+L1(5)+L1(2)=3 ou L1(8)+L1(5)+L1(2)=12
:Ligne(47,40,47,10
:If L1(9)+L1(6)+L1(3)=3 ou L1(9)+L1(6)+L1(3)=12
:Ligne(57,40,57,10
:If L1(7)+L1(5)+L1(3)=3 ou L1(7)+L1(5)+L1(3)=12
:Ligne(32,40,62,10
:If L1(9)+L1(5)+L1(1)=3 ou L1(9)+L1(5)+L1(1)=12
:Ligne(62,40,32,10
:Texte(7,33,"GAGNE
:Pause
:Goto 1
:Lbl G
:If L1(1)+L1(2)+L1(3)=3 ou L1(4)+L1(5)+L1(6)=3 ou L1(7)+L1(8)+L1(9)=3 ou L1(1)+L1(4)+L1(7)=3 ou L1(2)+L1(5)+L1(8)=3
ou L1(3)+L1(6)+L1(9)=3 ou L1(1)+L1(5)+L1(9)=3 ou L1(3)+L1(5)+L1(7)=3
:Goto M
:If L1(1)+L1(2)+L1(3)+L1(4)+L1(5)+L1(6)+L1(7)+L1(8)+L1(9)=21:Goto Y
:If L1(1)+L1(2)+L1(3)[différent de]3 et L1(4)+L1(5)+L1(6)[différent de]3 et L1(7)+L1(8)+L1(9)[différent de]3
et L1(1)+L1(4)+L1(7)[différent de]3 et L1(2)+L1(5)+L1(8)[différent de]3 et L1(3)+L1(6)+L1(9)[différent de]3
et L1(1)+L1(5)+L1(9)[différent de]3 et L1(3)+L1(5)+L1(7)[différent de]3
:Goto F
:Lbl Y
:Text(1,28,"    EGALITE     "
:Pause
:Goto 1
:Lbl H
:If L1(1)+L1(2)+L1(3)=12 ou L1(4)+L1(5)+L1(6)=12 ou L1(7)+L1(8)+L1(9)=12 ou L1(1)+L1(4)+L1(7)=12 ou L1(2)+L1(5)+L1(8)=12
ou L1(3)+L1(6)+L1(9)=12 ou L1(1)+L1(5)+L1(9)=12 ou L1(3)+L1(5)+L1(7)=12
:Goto M
:If L1(1)+L1(2)+L1(3)[différent de]12 et L1(4)+L1(5)+L1(6)[différent de]12 et L1(7)+L1(8)+L1(9)[différent de]12
et L1(1)+L1(4)+L1(7)[différent de]12 et L1(2)+L1(5)+L1(8)[différent de]12 et L1(3)+L1(6)+L1(9)[différent de]12
et L1(1)+L1(5)+L1(9)[différent de]12 et L1(3)+L1(5)+L1(7)[différent de]12
:Goto 5
Tigre-obscure le 03/06/2011 à 15:43
Merci Sandro super la correction happy.gif.

Tigre A+
Sangohan38 le 03/06/2011 à 16:31
Rohlalala ça me rajeunis pas tout sa...
Il est vraiment long pour un morpion mais de mémoire, il fonctionnait bien.
Donc comme d'hab', je te conseil de te relire pour voir si ton erreur ne viens pas en amont de la ligne indiquée (cad un soucis sur S ou N).

Sangohan38
Tigre-obscure le 03/06/2011 à 17:12
C'est bon j'ai réussi à bien faire le programme ^^
sandro le 03/06/2011 à 22:07
Allez pour les flémards anglophones cette fois, une version bien plus courte(478 octés) :
Code
Full
CoordOff
FnOff
AxesOff
GridOff
0 -> Xmin
94 -> Xmax
-62 -> Ymin
0 -> Ymax
ClrDraw
{3,3 -> dim([A]
Fill(1,[A]
Horizontal -21
Horizontal -42
Vertical 32
Vertical 63
For(A,1,9
If fPart(A/2
Then
"O -> Str1
2 -> Z
Else
"X -> Str1
3 -> Z
End
Lbl 1
Repeat K
getKey -> K
End
K-61 -> K
iPart(K/10 -> Y
K-10Y -> X
If [A](Y,X
Goto 1
Zü ( ) [A](Y,X
Text(21Y-14,32X-18,Str1
{[A](1,1)[A](1,2)[A](1,3),[A](2,1)[A](2,2)[A](2,3),[A](3,1)[A](3,2)[A](3,3),[A](1,1)[A](2,1)[A](3,1),[A](1,2)[A](2,2)[A](3,2),[A](1,3)[A](2,3)[A](3,3),[A](1,1)[A](2,2)[A](3,3),[A](3,1)[A](2,2)[A](1,3 -> Liste1
For(B,1,8
If 8=Liste1(B:Then:Text(10,10,"ROND GAGNE!":Stop:End
If 27=Liste1(B:Then:Text(10,10,"CROIX GAGNE!":Stop:End
End
End
Text(10,10,"MATCH NUL!


Sandro

PS : Sango, si ce post te dérange pour des raisons personnelles, n'hésite pas à le supprimer, ça me dérange pas, je le posterrais sur un sujet appart
Giulia33 le 26/10/2011 à 09:24
Bonjour à tous. Quelqu'un pourrait me dire à quoi correspond Str en français ? J'ai cherché sur http://tout82.free.fr/forum/sujet.php?sujet=620 mais je n'ai pas trouvé.
Merci happy.gif
linkakro le 26/10/2011 à 12:45
Le sujet que tu as consulté est périmé mais l'info s'y cachait tout-de-même dans les réponses.
L'autre sujet complet là dessus est celui-ci. J'avais déjà donné le lien vers le catalogue de persalteas.
Str se traduit par chaîne.
Giulia33 le 26/10/2011 à 14:26
Merci bcp, j'espère que j'vais m'en sortir ^^ Tu t'y connais bien en jeux sur ti 82 ?
100%Mysthic le 26/10/2011 à 16:08
Salut. Alors j'ai entré le programme de sandro (478octes) et lorsque je le demarre, le quadrillage du morpion se forme, mais quand j'appuie sur une touche, ils me disent ERR:DIM INVALIDE à la ligne 33, après le X...
linkakro le 26/10/2011 à 18:59
Giulia33 : oui je m'y connais bien en jeux ti82/83. Deux ans d'expérience.

100%Mysthic :
Verifie les valeurs de X et Y juste après l'erreur.
Elles doivent être comprises entre 1 et 3.
Sinon elles sont mal définies.
Vérifie aussi les dimensions de la matrice [A] dans le menu matrice. Elles doivent être {3,3}.
sandro le 26/10/2011 à 20:48
Ou peut-être t'a apuyé sur autrechose qu'un chiffre? je ne suis pas sur si j'a pensé à bloquer les effet de cette errerue.

Sandro
100%Mysthic le 26/10/2011 à 21:06
Alors je viens de regarder et effectivement je n'avais pas les bonnes dimensions pour [A]. Je les ai changé, vérifié et revérifié mon programme et n'ai pas trouvé d'erreurs. Pourtant, toujours le même problème. Tant pis, j'vais abandonner crazy.gif Merci quand même .
sandro le 27/10/2011 à 12:51
Si tu donnait la vleur des variables au moment du bug, on pourrait peut-être t'aider

Sandro