Poster un nouveau sujet Poster une réponse
Morpion
Auteur Message
Didouille



Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
Posté le : Dim 20 Déc 2009, 11:12   Citer 

Bonjour à tous ! Je vous présente mon dernier programme, un Morpion ! bigmouth.gif
Je tiens à préciser que le site du zéros en propose un dans un de ses tutoriels et que je n'ai pas copier ! (le miens étant beaucoup mieux^^)
Pour info, il fait 2408 octets et se joue à 2. (j'ai même pas essayer de crée une intelligence artificielle pour un mode 1 joueur)

Les règles :
- Se joue à 2
- Le jeux s'arrête quand 3 croix ou 3 cercles sont alignés verticalement, horizontalement ou en diagonale.
- Ensuite le programme nous demande de "Restart" ou non.
- A chaque fois qu'un joueur aligne 3 de ses pions, il gagne 1 point.
- Les points s'accumulent si vous demander à chaque fin de partie de "Restart"
- A chaque nouvelle partie, Le J1 commence une fois sur 2 pour que sa soit égale
- Si quand vous en avez marre, vous demander de ne pas "Restart", le programme fait un bilan et attribue un vainqueur sur toute les parties jouées.
- Il peut y avoir égalité.

Voici le code:


Code
:StoreGDB GDB1  /* StoreGDB : 2nd + PRGM + 2 fois flèche droite
:0->L                  GDB1 : Vars + GDB */
:0->M
:2->D
:1->I
:Lbl 1
:If L+M=!0 or I=0:D+1->D    // =! signifie : signe différent : 2nd + MATH + 2
:ClrDraw
:CoordOff                  // Window + format
:GridOff
:AxesOff
:FnOff                     // 2nd + VARS + ON/Off
:0->Xmin                   // VARS + Window
:0->Ymin
:94->Xmax
:62->Ymax
:Line(34,21,94,21:Line(34,41,94,41:Line(54,61,54,1:Line(74,61,74,1
:Line(34,1,34,61:Line(34,61,94,61:Line(94,61,94,1:Line(94,1,34,1
:Line(5,36,29,36:Line(17,43,17,27:Line(4,44,30,44:Line(30,44,30,26:Line(4,26,4,44
:Text(19,8,"J1
:Text(19,21,"J2
:Text(28,10,L
:Text(28,23,M
:{3,3}->dim [A]            // Pour faire [A] faites MATRX + ENTRER
:Fill(0,[A]                // Fill : MATRX + flèche droite
:36->A:3->B:0->C:1->E:1->F:0->G:1->I
:Line(A,B,A,B+16:Line(A,B+16,A+16,B+16:Line(A+16,B+16,A+16,B:Line(A+16,B,A,B

:Repeat C=1
:Text(1,17,"                 "    // 17 Espaces
:If fPart (D/2)=!0:Text(1,25,"J2   // fPart : MATH + flèche droite
:If fPart (D/2)=0:Text(1,17,"J1

:Repeat K=105
:getKey->K
:If K=24 or K=25 or K=26 or K=34
:Then
:Line(A,B,A,B+16,0:Line(A,B+16,A+16,B+16,0:Line(A+16,B+16,A+16,B,0:Line(A+16,B,A,B,0
:End

:If K=24:Then:A-20->A:F-1->F:End
:If K=26:Then:A+20->A:F+1->F:End
:If K=34:Then:B-20->B:E-1->E:End
:If K=25:Then:B+20->B:E+1->E:End

:If A=16:76->A
:If A=96:36->A
:If B=-17:43->B   // Ce moins est le signe négatif. Sur la calcu il est noté (-)
:If B=63:3->B
:If E=4:1->E
:If E=0:3->E
:If F=4:1->F
:If F=0:3->F

:If K=24 or K=25 or K=26 or K=34
:Then
:Line(A,B,A,B+16:Line(A,B+16,A+16,B+16:Line(A+16,B+16,A+16,B:Line(A+16,B,A,B
:End

:If fPart (D/2)=0 and [A](E,F)=0
:Then
:Line(A+1,B+1,A+15,B+15:Line(A+15,B+1,A+1,B+15
:1->[A](E,F
:D+1->D:G+1->G
:End

:If fPart (D/2)=!0 and [A](E,F)=0
:Then
:Circle(A+8,B+8,7     // Pour cette ligne regarder à la fin du post.
:2->[A)(E,F
:D+1->D:G+1->G
:End
:If G=9
:Then
:1->C:0->I
:End

:If ([A](1,1)=!0 and [A](1,1)=[A](1,2) and [A](1,2)=[A](1,3)) or  // Cette mise
([A](2,1)=!0 and [A](2,1)=[A](2,2) and [A](2,2)=[A](2,3)) or  // en page est la
([A](3,1)=!0 and [A](3,1)=[A](3,2) and [A](3,2)=[A](3,3)) or  // pour facilité 
([A](1,1)=!0 and [A](1,1)=[A](2,1) and [A](2,1)=[A](3,1)) or  // la copie du
([A](1,2)=!0 and [A](1,2)=[A](2,2) and [A](2,2)=[A](3,2)) or  // programme.
([A](1,3)=!0 and [A](1,3)=[A](2,3) and [A](2,3)=[A](3,3)) or  // Ne pas sauter
([A](1,1)=!0 and [A](1,1)=[A](2,2) and [A](2,2)=[A](3,3)) or  // de ligne sur la
([A](3,1)=!0 and [A](3,1)=[A](2,2) and [A](2,2)=[A](1,3))     // calculatrice.
:1->C
:End

:D-1->D
:Line(A,B,A,B+16,0:Line(A,B+16,A+16,B+16,0:Line(A+16,B+16,A+16,B,0:Line(A+16,B,A,B,0
:If I=0
:Text(6,4,"EGALITE
:Text(1,17,"                 "    // 17 Espaces

:If fPart (D/2)=0 and I=!0
:Then
:Text(1,14,"J1
:L+1->L
:Text(28,10,"     "    // 5 Espaces
:Text(28,10,L
:End

:If fPart(D/2)=!0 and I=!0
:Then
:M+1->M
:Text(1,14,"J2
:Text(28,23,"     "    // 5 Espaces
:Text(28,23,M
:End

:If I=!0
:Text(8,6,"GAGNE
:Text(40,2,"RESTART?    // Laissez Le "?" collé au "RESTART"
:Line(2,15,31,15
:Text(49,18,"YES
:Text(57,18,"NO
:0->K:49->N
:Text(N,5,"-->  // Ceci n'est pas la flèche "sto". Faites 2 fois le signe - + >

:Repeat K=105
:getKey->K
:If K=25 or K=34
:Text(N,5,"            "    // 12 Espaces

:If K=25:N-8->N
:If K=34:N+8->N
:If N=41:49->N
:If N=65:57->N
:If K=25 or K=34
:Text(N,5,"-->
:End

:If N=49:Goto 1
:RecallGDB GDB1
:If N=57
:Then
:ClrHome
:If L=M
:Then
:Output(2,1,"EGALITE ENTRE LE
:Output(3,1,"J1 ET LE J2 AVEC
:Output(4,2,M
:Output(4,4,"VICTOIRE(S)
:Output(5,6,"CHACUN
:End

:If M=!L
:Then
:Output(3,3,«LE J   GAGNE"       // 3 espaces entre J et GAGNE
:If L>M:Output(3,1,"1
:If M>L:Output(3,7,"2
:Output(4,5,"AVEC   -"                // 3 espaces après AVEC
:Output(4,10,L
:Output(4,14,M
:End
:Output(7,4,"MADE BY :
:Output(8,8,"ADRIEN.D
:End
:Output(1,1,"



Si vous trouver que le traçage du cercle est trop lent ( cela dépend du modèle de votre calculatrice Il faut remplacer cette ligne :

Code
:Circle(A+8,B+8,7


Par ceci :

Code
:Pt-On(A+6,B+1:Pt-On(A+7,B+1:Pt-On(A+8,B+1:Pt-On(A+9,B+1:Pt-On(A+10,B+1:Pt-On(A+11,B+2:Pt-On(A+12,B+2:Pt-On(A+13,B+3:Pt-On(A+14,B+4:Pt-On(A+14,B+5:Pt-On(A+15,B+6:Pt-On(A+15,B+7:Pt-On(A+15,B+8:Pt-On(A+15,B+9:Pt-On(A+15,B+10:Pt-On(A+14,B+11:Pt-On(A+14,B+12:Pt-On(A+13,B+13:Pt-On(A+12,B+14:Pt-On(A+11,B+14:Pt-On(A+10,B+15:Pt-On(A+9,B+15:Pt-On(A+8,B+15:Pt-On(A+7,B+15:Pt-On(A+6,B+15:Pt-On(A+5,B+14:Pt-On(A+4,B+14:Pt-On(A+3,B+13:Pt-On(A+2,B+12:Pt-On(A+2,B+11:Pt-On(A+1,B+10:Pt-On(A+1,B+9:Pt-On(A+1,B+8:Pt-On(A+1,B+7:Pt-On(A+1,B+6:Pt-On(A+2,B+5:Pt-On(A+2,B+4:Pt-On(A+3,B+3:Pt-On(A+4,B+2:Pt-On(A+5,B+2


Pt-On( se trouve en faisant 2nd + PRGM + flèche droite + ENTRER
La calculatrice trace enfaite les points un par un, ce qui est plus rapide (oui c'est bizarre^^)
Pour plus de clarté voici la liste des points :

Code
A+6,B+1      A+14,B+11      A+1,B+10
A+7,B+1      A+14,B+12      A+1,B+9
A+8,B+1      A+13,B+13      A+1,B+8
A+9,B+1      A+12,B+14      A+1,B+7
A+10,B+1      A+11,B+14      A+1,B+6
A+11,B+2      A+10,B+15      A+2,B+5
A+12,B+2      A+9,B+15      A+2,B+4
A+13,B+3      A+8,B+15      A+3,B+3
A+14,B+4      A+7,B+15      A+4,B+2
A+14,B+5      A+6,B+15      A+5,B+2
A+15,B+6      A+5,B+14      
A+15,B+7      A+4,B+14      
A+15,B+8      A+3,B+13      
A+15,B+9      A+2,B+12      
A+15,B+10      A+2,B+11         



- Quand il y a // puis du texte, ce sont des commentaires (il ne faut pas les copiés).
- Si je saute des lignes c'est pour vous facilitez la copie du programme, pour le copier par étapes.

Bon ba voilà, j'espère que quelqu'un vas le tester. Dites m'en des nouvelles godgrace.gif

----------------------
--Didouille--
 Adresse email Haut de page Bas de page 
 
dysto



Autorisation : Membre
Nb de messages : 200
Inscrit le : Mar 20 Oct 2009, 18:58
Posté le : Dim 20 Déc 2009, 14:37   Citer 

2408 octets pour un simple morpion oO !
C'est pas un peu beaucoup ?
Sinon, je vais me le recopier dans la journée voir si il les vaut ^^.

 Adresse email Haut de page Bas de page 
 
Didouille



Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
Posté le : Dim 20 Déc 2009, 15:38   Citer 

T'inquiète il les vaut ^^
Et sans tout les Pt(.... sa doit faire plutôt 2000

----------------------
--Didouille--
 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Jeu 24 Déc 2009, 16:25   Citer 

j'ai fait un .83p mais il marche mal ahh.gif
vous pouvez m'aidez ?

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
Didouille



Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
Posté le : Sam 26 Déc 2009, 14:17   Citer 

Je sais pas comment on fait^^

----------------------
--Didouille--
 Adresse email Haut de page Bas de page 
 
bast
Invité
Posté le : Sam 30 Jan 2010, 19:49   Citer 

a quoi correspond ton image a la premiere ligne de ton code ?

  Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Sam 30 Jan 2010, 20:43   Citer 

ce n'est pas une image mais les données graphiques ( fenêtre, fonction, affichage des axes...)

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Mer 24 Fév 2010, 16:38   Citer 

lu j'ai un probleme, il me marque val fenetre au ":"
Code
:Line(34,21,94,21:Line(34,41,94,41:Line(54,61,54,1:Line(74,61,74,1
:Line(34,1,34,61:Line(34,61,94,61:Line(94,61,94,1:Line(94,1,34,1
:Line(5,36,29,36:Line(17,43,17,27:Line(4,44,30,44:Line(30,44,30,26:Line(4,26,4,44



 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Mer 24 Fév 2010, 19:30   Citer 

est ce que quelqu'un pourrait m'aider sa me met erreur VAL FENETRE

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Mer 24 Fév 2010, 20:23   Citer 

ferme la parenthèse ou revient à la ligne avant les :

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Mer 24 Fév 2010, 20:49   Citer 

j'y ai pensé mais ça ne marche pas
merci quand même

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Mer 24 Fév 2010, 22:02   Citer 

Vérifie si tu n'as pas fait d'erreur aux 4 lignes de code précédentes

 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Jeu 25 Fév 2010, 14:42   Citer 

problème val fenêtre résolu merci
maintenant j'ai d'autres petits problemes :
-je ne pe pas choisir ou je veux mettre mes croix et mes croix ça les place sur le pointeur
-est ce normal que la zone de jeu ne soit pas délimitécar je peut mettre des croix une case a coté de la zone de jeu
-le pire : ça ne détecte pas lorsque j'aligne 3 croix (ou ronds).
Ps: me dite pas que j'ai recopié tout ça pour rien

 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Jeu 25 Fév 2010, 17:55   Citer 

svp est ce que quelqu'un peut me répondre ? cry.gif

 Adresse email Haut de page Bas de page 
 
Didouille



Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
Posté le : Jeu 25 Fév 2010, 19:53   Citer 

Pour la zone de jeux délimiter vérifie sa :

Code
:If A=26:76->A
:If A=96:36->A
:If B=-17:43->B   // Ce moins est le signe négatif. Sur la calcu il est noté (-)
:If B=63:3->B
:If E=4:1->E
:If E=0:3->E
:If F=4:1->F
:If F=0:3->F



Pour la détection des victoires vérifie sa :


Code
:If ([A](1,1)=!0 and [A](1,1)=[A](1,2) and [A](1,2)=[A](1,3)) or  // Cette mise
([A](2,1)=!0 and [A](2,1)=[A](2,2) and [A](2,2)=[A](2,3)) or  // en page est la
([A](3,1)=!0 and [A](3,1)=[A](3,2) and [A](3,2)=[A](3,3)) or  // pour facilité 
([A](1,1)=!0 and [A](1,1)=[A](2,1) and [A](2,1)=[A](3,1)) or  // la copie du
([A](1,2)=!0 and [A](1,2)=[A](2,2) and [A](2,2)=[A](3,2)) or  // programme.
([A](1,3)=!0 and [A](1,3)=[A](2,3) and [A](2,3)=[A](3,3)) or  // Ne pas sauter
([A](1,1)=!0 and [A](1,1)=[A](2,2) and [A](2,2)=[A](3,3)) or  // de ligne sur la
([A](3,1)=!0 and [A](3,1)=[A](2,2) and [A](2,2)=[A](1,3))     // calculatrice.



Pour le 1er problème tu peux préciser ? Je voit pas ce que tu veux dire.

----------------------
--Didouille--
 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Jeu 25 Fév 2010, 21:03   Citer 

merci de m'avoir répondu je vais vérifié
comment fait-on pour faire un rond ou une croix
sinon le problème c'est que pour le carré pour choisir l'emplacement de mon signe il mets le signe sans que j'appuie donc la 1er croix et en bas a droite cry.gif cry.gif cry.gif

 Adresse email Haut de page Bas de page 
 
Didouille



Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
Posté le : Jeu 25 Fév 2010, 23:15   Citer 

Autant pour moi, c'est de ma faute (erreur de copie)
Ajoute un End ici :


Code
:If A=26:76->A
:If A=96:36->A
:If B=-17:43->B   // Ce moins est le signe négatif. Sur la calcu il est noté (-)
:If B=63:3->B
:If E=4:1->E
:If E=0:3->E
:If F=4:1->F
:If F=0:3->F

:If K=24 or K=25 or K=26 or K=34
:Then
:Line(A,B,A,B+16:Line(A,B+16,A+16,B+16:Line(A+16,B+16,A+16,B:Line(A+16,B,A,B
:End
:End    <== celui là !



----------------------
--Didouille--
 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Ven 26 Fév 2010, 11:49   Citer 

merci maintenant la reconnaissance des victoires marche, le pointage aussi, ... mais la zone du morpion n'est pas encore bonne ( j'ai vérifié la partie de code que tu m'avais proposé pour la zone de jeux délimitée) Comment faire ????
merci d'avance en tout cas ce jeu est très bien

 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Ven 26 Fév 2010, 18:33   Citer 

help est ce que quelqu'un pourrait m'aider pour mon probleme de zone de jeux ??? cry.gif cry.gif cry.gif
sinon est ce que d'autre personne peuvent le copier pour voir si c'est moi qui est fait une erreur et si c'estune erreur de recopiage de Didouille crazy.gif crazy.gif

 Adresse email Haut de page Bas de page 
 
Didouille



Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
Posté le : Ven 26 Fév 2010, 22:38   Citer 

En effet c'est encore une erreur de recopiage, change cette ligne :


Code
:If A=26:76->A



Par sa :


Code
:If A=16:76->A



----------------------
--Didouille--
 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Sam 27 Fév 2010, 12:37   Citer 

merci maintenant je pense que c'est bon

 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Jeu 11 Mar 2010, 18:42   Citer 

je m'adresse au programmateur est ce que vous pouvez modifiez ce morpion pour que l'on puisse jouer contre un IA
merci de me dire toutes les modifications à faire

 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Sam 13 Mar 2010, 13:40   Citer 

est ce que quelqu'un pourrait me répondre au moins ? svp

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Dim 14 Mar 2010, 15:30   Citer 

Moi je peux pas.

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 14 Mar 2010, 15:56   Citer 

Moi non plus.
Ce n'est que rarement facile de programmer une IA efficace sans une base de cas de figures, ce qui est lourd.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Dim 14 Mar 2010, 18:44   Citer 

merci d'avoir répondu
est ce que didouille pour aussi me répondre comme c'est son programme?merci

 Adresse email Haut de page Bas de page 
 
Didouille



Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
Posté le : Jeu 18 Mar 2010, 17:32   Citer 

J'y ai pensé, fait des recherches et en ai conclue que c'est beaucoup trop compliqué pour moi ^^
Le seul truc que je pourrai faire c'est que la calto choisisse une case au hasard.

----------------------
--Didouille--
 Adresse email Haut de page Bas de page 
 
scorpion



Autorisation : Membre
Nb de messages : 41
Inscrit le : Sam 20 Fév 2010, 17:50
Posté le : Jeu 18 Mar 2010, 18:27   Citer 

tan pis merci quand meme

 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Mar 23 Mar 2010, 15:51   Citer 

Sinon on pourrais essayer d'appliquer une stratégie fixe en fonction des cases remplies par le joueur et avec la première aléatoire.

Sangohan38

 Adresse email Haut de page Bas de page 
 
Link



Autorisation : Membre
Nb de messages : 26
Inscrit le : Mar 13 Avr 2010, 12:34
Posté le : Jeu 22 Avr 2010, 12:14   Citer 

marrant, j'ai fait un morpion aussi hier soir ^^ !

je vous l'envoie (il pèse environ 980 octets). (tout écrit avec le clavier visuel windows vu que le mien est en panne)


// Ceci est un commentaire



Code
Lbl A
1->K
0->Q   
0->P   
0->V   
0->R   
0->U 
0->T
0->W
0->Z
0->Y
0->N   
7->E
16->F
1->G
0->H 
EffEcr
Output(8,16,"O               // ici un "O"
output(1,1,"-------
output(2,1,"[ I I ]   7 8 9
output(3,1,"[-----]
output(4,1,"[ I I ]   4 5 6
output(5,1,"[-----]
output(6,1,"[ I I ]   1 2 3
output(7,1,"-------
Lbl 5
K+1->K
If Q=K et P=K et R=K:Goto P     
If Q=K et U=K et Y=K:Goto P
If R=K et U=K et W=K:Goto P
If V=K et U=K et T=K:Goto P
If W=K et Z=K et Y=K:Goto P
If R=K et T=K et Y=K:Goto P
If P=K et U=K et Z=K:Goto P
If Q=K et V=K et W=K:Goto P
If K=1:Goto 5
If K=2:0->K
If N=9:Goto 4
Lbl 1
0->C     
codeTouche->C
If C=0:Goto 1     
If C=74 et Q=0     
Then
2->E
6->F
G->Q
Goto B
End
If C=73 et P=0     
Then
2->E
4->F
G->P
Goto B
End
If C=72 et R=0   
Then
2->E
2->F
G->R
Goto B
End
If C=84 et V=0
Then
4->E
6->F
G->V
Goto B
End
If C=83 et U=0
Then
4->E
4->F
G->U
Goto B
End
If C=82 et T=0
Then
4->E
2->F
G->T
Goto B
End
If C=94 et W=0
Then
6->E
6->F
G->W
Goto B
End
If C=93 et Z=0
Then
6->E
4->F
G->Z
Goto B
End
If C=92 et Y=0
Then
6->E
2->F
G->Y
Goto B
End
0->C
Goto 1
Lbl B
If G=1
Then
Output(8,16,"*
2->G
Output (E,F,"O      // "O"
N+1->N
Goto 5
End
If G=2
Then
Output(8,16,"O       // Ici "O" et pas "zéro"
1->G
Output(E,F,"*
N+1->N
Goto 5
End
Lbl 4
EffEcr
Pause "EGALITE
Goto A
Lbl P
EffEcr
If K=1
Then
Pause "0 GAGNE
End
If K=2
Then
Pause "* GAGNE
End
Menu("FIN","NEW GAME",A,"QUITTER",Z
Lbl Z
Disp "PROG BY LiNK"



A!!! fini !!! crazy.gif
Si des programmeurs pourrait m'aider à enlever des "Then", sa serait sympa (genre a la fin avec les "O gagne" et "* gagne", je crois qu'il n'y en a pas besoin).
Voila!!! Merci ^^

 Adresse email Haut de page Bas de page 
 
Didouille



Autorisation : Membre
Nb de messages : 158
Inscrit le : Dim 11 Oct 2009, 14:18
Posté le : Jeu 22 Avr 2010, 17:49   Citer 

Ya juste les 2 dernier qui sont inutiles. Les End qui vont avec aussi.

----------------------
--Didouille--
 Adresse email Haut de page Bas de page 
 
Link



Autorisation : Membre
Nb de messages : 26
Inscrit le : Mar 13 Avr 2010, 12:34
Posté le : Jeu 22 Avr 2010, 20:13   Citer 

Et sinon, vous trouvez comment =P ?
j'ai fait sa en 1 heure dans mon lit (les yeux a moitiés ouvert, lol)

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 22 Avr 2010, 22:48   Citer 

J'aime bien la boucle de test d'alignement, bien qu'elle puisse être remplacée par un For ou encore mieux selon le contenu.

Plutôt que de trafiquer G et H pour savoir qui joue, stocke 1 ou 2 dans G. Puis tes tests sur G=1 ou H=1 peuvent être remplacés par G->P (ou toutes variables de cases)
Puis la partie changement de joueur peut être réduite avec 3-G->G
Dans cette même partie les deux then peuvent être rassemblés avec un Else
Les N+1->N et goto5 (même endroit) peuvent être à la suite des If...End et ne pas se répéter.

D'autres trucs sont laissés à la préférence de chaque programmeurs.

Tu as déjà réussi à faire quelque chose qui tient debout, c'est l'essentiel. bravo

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Link



Autorisation : Membre
Nb de messages : 26
Inscrit le : Mar 13 Avr 2010, 12:34
Posté le : Ven 23 Avr 2010, 9:44   Citer 

Merci beaucoup Linkakro ^^
Je posterais "Mars Atak !" alors ^^ ("Mars Atak!" posté!!! allé y jeter un œil happy.gif )

En le postant j'avais en effet remarqué que je pouvais grouper les G et H,
et le N+1->N et Goto 5, sa me gênais qu'ils y soient 2 fois aussi.

Merci, très bon commentaire godgrace.gif

a+ Programmeur
(tu est acro a link? ^^)

Programme modifié!! 153 o de moins!!

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes