Poster un nouveau sujet Poster une réponse Page: 1,      >>
morpion
Auteur Message
tapenade



Autorisation : Membre
Nb de messages : 22
Inscrit le : Jeu 10 Nov 2011, 13:12
Posté le : Mar 15 Nov 2011, 18:33   Citer 

voila un grand classique,deja fait,mais voici ma version de 625 octets pour ti-82.fr fait en moins d'une heure:

Code

:Disp"NE PAS APPUYER","2FOIS SUR LA MEME TOUCHE","LES EMPLACEMENTS SONT CEUX DU","PAVE NUMERIQUE"
:Pause
:0->X                   //ces quelques lignes paraissent servir a rien
:45->A                  //mais elles sont essentiel sinon le code bug
:46->B                   // les nombres importe peut sauf le X
:47->C
:48->D
:49->E
:50->F
:51->I
:52->J
:53->K
:Lbl0
:Menu(">MORPION<","JOUEUR1",1,"JOUEUR2",2)
:Lbl1
:X+1->X
:1->U
:Goto5
:Lbl2
:2->U
:X+1->X
:Goto5
:Lbl5
:EffEcr
:Input " ",O
:If O=9
:Then
:U->A
:End
:If O=8
:Then
:U->B
:End
:If O=7
:Then
:U->C
:End
:If O=6
:Then
:U->D
:End
:If O=5
:Then
:U->E
:End
 :If O=4
:Then
:U->F
:End
:If O=3
:Then
:U->I
:End
:If O=2
:Then
:U->J
:End
 :If O=1
:Then
:U->K
:End
:If A=D et D=I
:Goto3
:If B=E et E=J
:Goto3
:If C=F et F=K
:Goto3
:If A=B et B=C
:Goto3
:If D=E et E=F
:Goto3
:If I=J et J=K
:Goto3
:If A=E et E=K
:Goto3
:If C=E et E=I
:Goto3
:Effecr
:If C<3
:Output(1,4,C
:If B<3
:Output(1,5,B
:If A<3
:Output(1,6,A
:If F<3
:Output(1,4,F
:If E<3
:Output(1,5,E
:If D<3
:Output(1,6,D
 :If K<3
:Output(1,4,K
:If J<3
:Output(1,5,J
:If I<3
:Output(1,6,I

:Pause
:If X=9
: Goto4
: Goto0
:Lbl3
:EffEcr
:Disp"JOUEUR",U,"A GAGNE"
:Stop
:Lbl4
:EffEcr
:Disp"EGALITE"
:Stop


pfiou!enfin fini! crazy.gif
bonne chance pour le recopier
si vous avez des idées pour l'ameliorer,des questions allez-y

idée pour une v.2:
une IA
faire un tour a tour non facultatif
empecher de taper 2 fois de suite sur le meme chiffre
si vous avez des idées pour ma v.2 dites les cupsmiley.gif

----------------------
-----------------------------------
&amp;amp;amp;quot;on monte plus vite un escalier fait pour descendre que si on descend un escalier fait pour monter...&amp;amp;amp;quot;
&amp;amp;amp;quot;si ton tonton thon tond ton tonton thon,ton tonton tondu sera...&amp;amp;amp;quot;
http://www.chucknorrisfacts.fr/:LE site qu'il faut avoir vu dans sa vie
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mar 15 Nov 2011, 18:56   Citer 

Outch, il fait mal au cul ton code °°

Tu pourrais le diviser par trois à mon avis...

Déja toutes tes conditions en If suivies d'une seule action peuvent être écrites de la forme :
IF truc = machin
Machin = truc + bidule
Sans Then in End.

Ou encore par des boléens (groupe conditionnel égal à 1 si vrai ou à 0 si faux)

J'ajoute, que par l'utilisation d'une matrice, tu te simplifierais la vie. Tu crée une matrice 3x3 et dedans tu remplis par des 0 si rien, des 1 si c'est le joueur 1 ou des 2 si c'est le joueur deux.

Tu peux également le faire en graphique avec des sélecteurs (voir Ce très bon tuto (vers la fin, mais tu peux tout lire ^^

----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 15 Nov 2011, 19:22   Citer 

Tu ne pourrait pas transformer

Code
:If A=D et D=I
:Goto3
:If B=E et E=J
:Goto3
:If C=F et F=K
:Goto3
:If A=B et B=C
:Goto3
:If D=E et E=F
:Goto3
:If I=J et J=K
:Goto3
:If A=E et E=K
:Goto3
:If C=E et E=I
:Goto3


en

Code
:If A=D et D=I ou B=E et E=J ou C=F et F=K ou A=B et B=C ou D=E et E=F ou
I=J et J=K ou A=E et E=K ou C=E et E=I
:Goto3



Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
tapenade



Autorisation : Membre
Nb de messages : 22
Inscrit le : Jeu 10 Nov 2011, 13:12
Posté le : Mar 15 Nov 2011, 20:28   Citer 

sandro:bonne idéeje vais essayer
polymorph:boléens???? ahh.gif et a qoui servirai la matrice?


mais je vais essayer de le reduire

----------------------
-----------------------------------
&amp;amp;amp;quot;on monte plus vite un escalier fait pour descendre que si on descend un escalier fait pour monter...&amp;amp;amp;quot;
&amp;amp;amp;quot;si ton tonton thon tond ton tonton thon,ton tonton tondu sera...&amp;amp;amp;quot;
http://www.chucknorrisfacts.fr/:LE site qu'il faut avoir vu dans sa vie
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 15 Nov 2011, 20:48   Citer 

booléens : calcul binaire qui ce base sur vrai=1 et faux=0. utilise des opérations telles que et, ou, ou exclusif, non, ... Sur la TI, les conditions fonctionnent en fait avec : un test renvoie 0 ou 1 : si c'est 0, c'est faux, si c'est autrechose (pas forcément 1), c'est juste.

Pour la matrice, ça permet du tout avoir en une seule variable pour tes positions, mais après, je ne suis pas sur si c'est le plus optimisé (faudrait tester).

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mar 15 Nov 2011, 21:03   Citer 

La matrice permettrait de recréer une grille, dont chaque case correspondrait à une case de ta grille, au début c'est bourré de zéros, et à chaque fois que tu joue t'en remplace un par un 1 ou un 2. Ainsi, dès que y'a plus de zéros, tu sais que c'est terminé, et il te suffit de faire les test verticaux, horizontaux et diagonaux à chaque coup en référant à la position du pion qui a été posé.

----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
tapenade



Autorisation : Membre
Nb de messages : 22
Inscrit le : Jeu 10 Nov 2011, 13:12
Posté le : Mar 15 Nov 2011, 22:44   Citer 

demain la v.1.2 allegee de 548octets

----------------------
-----------------------------------
&amp;amp;amp;quot;on monte plus vite un escalier fait pour descendre que si on descend un escalier fait pour monter...&amp;amp;amp;quot;
&amp;amp;amp;quot;si ton tonton thon tond ton tonton thon,ton tonton tondu sera...&amp;amp;amp;quot;
http://www.chucknorrisfacts.fr/:LE site qu'il faut avoir vu dans sa vie
 Adresse email Haut de page Bas de page 
 
tapenad



Autorisation : Membre
Nb de messages : 225
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Jeu 17 Nov 2011, 13:29   Citer 

voici la v.1.2 de 548 octets:


Code

:Disp"NE PAS APPUYER","2FOIS SUR LA MEME TOUCHE","LES EMPLACEMENTS SONT CEUX DU","PAVE NUMERIQUE"
:Pause
:0->X                   //ces quelques lignes paraissent servir a rien
:45->A                  //mais elles sont essentiel sinon le code bug
:46->B                   // les nombres importe peut sauf le X
:47->C
:48->D
:49->E
:50->F
:51->I
:52->J
:53->K
:Lbl0
:Menu(">MORPION<","JOUEUR1",1,"JOUEUR2",2)
:Lbl1
:X+1->X
:1->U
:Goto5
:Lbl2
:2->U
:X+1->X
:Goto5
:Lbl5
:EffEcr
:Input " ",O
:If O=9
:Then
:U->A
:End
:If O=8
:Then
:U->B
:End
:If O=7
:Then
:U->C
:End
:If O=6
:Then
:U->D
:End
:If O=5
:Then
:U->E
:End
 :If O=4
:Then
:U->F
:End
:If O=3
:Then
:U->I
:End
:If O=2
:Then
:U->J
:End
 :If O=1
:Then
:U->K
:End
:If A=D=I ou B=E=J ou C=F=K ou A=B=C ou D=E=F ou I=J=K ou A=E=K ou C=E=I
:Goto3
:Effecr
:If C<3
:Output(1,4,C
:If B<3
:Output(1,5,B
:If A<3
:Output(1,6,A
:If F<3
:Output(1,4,F
:If E<3
:Output(1,5,E
:If D<3
:Output(1,6,D
 :If K<3
:Output(1,4,K
:If J<3
:Output(1,5,J
:If I<3
:Output(1,6,I

:Pause
:If X=9
: Goto4
: Goto0
:Lbl3
:EffEcr
:Disp"JOUEUR",U,"A GAGNE"
:Stop
:Lbl4
:EffEcr
:Disp"EGALITE"
:Stop


et voila ( c'est toujours enorme mais c'est deja mieux bigmouth.gif

----------------------
L’erreur est humaine, mais pour provoquer une vraie catastrophe, il faut un ordinateur.

je suis premier!!!

je m'aime.
 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Jeu 17 Nov 2011, 17:27   Citer 

Si tu n'as qu'une instruction après un If, le Then et le End sont inutiles.

Au lieu d'utiliser tant de variables, essaye de tout regrouper dans une liste, c'est plus facile pour les calculs.

Sangohan38

 Adresse email Haut de page Bas de page 
 
tapenad



Autorisation : Membre
Nb de messages : 225
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Jeu 17 Nov 2011, 17:43   Citer 

ah oui desolé j'ai oublié de retirer les then et les end qui ne servent a rien
je vais essayé de mettre des liste a la place...

----------------------
L’erreur est humaine, mais pour provoquer une vraie catastrophe, il faut un ordinateur.

je suis premier!!!

je m'aime.
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Jeu 17 Nov 2011, 17:47   Citer 

Matrice! >_< Matrice!

Sinon tu as quand même un tas de variables qui ne servent pas énormément...

----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
tapenad



Autorisation : Membre
Nb de messages : 225
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Jeu 17 Nov 2011, 18:00   Citer 

polymorph: tu a tout faux,mes variables on toutes leur utilités:
A B C D E F I J K sont les 9 cases ( je vais essayer de remplacer par une liste...)
U definit le joueur
X permet l'egalité(mais je pourrais mettre un for( ça allegerai l'ensemble

----------------------
L’erreur est humaine, mais pour provoquer une vraie catastrophe, il faut un ordinateur.

je suis premier!!!

je m'aime.
 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Jeu 17 Nov 2011, 23:46   Citer 

L'utilisation de matrice est inutile dans la mesure où l'utilisation de variables/listes sont moins gourmandes en place et leurs utilisation se fait en utilisant moins de caractères.

Sangohan38

 Adresse email Haut de page Bas de page 
 
informato
Invité
Posté le : Sam 28 Jan 2012, 20:12   Citer 

Il y a une petite erreur je pense dans ton programme.

:If C<3
:Output(1,4,C
:If B<3
:Output(1,5,B
:If A<3
:Output(1,6,A
:If F<3
:Output(1,4,F
:If E<3
:Output(1,5,E
:If D<3
:Output(1,6,D
:If K<3
:Output(1,4,K
:If J<3
:Output(1,5,J
:If I<3
:Output(1,6,I

Ce serait mieux de mettre:

:If C<3
:Output(1,4,C
:If B<3
:Output(1,5,B
:If A<3
:Output(1,6,A
:If F<3
:Output(2,4,F
:If E<3
:Output(2,5,E
:If D<3
:Output(2,6,D
:If K<3
:Output(3,4,K
:If J<3
:Output(3,5,J
:If I<3
:Output(3,6,I

  Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
tapenad



Autorisation : Membre
Nb de messages : 225
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Sam 28 Jan 2012, 20:20   Citer 

effectivement tu n'a pas tort je le reposte en bien propre...

----------------------
L’erreur est humaine, mais pour provoquer une vraie catastrophe, il faut un ordinateur.

je suis premier!!!

je m'aime.
 Adresse email Haut de page Bas de page 
 
tapenad



Autorisation : Membre
Nb de messages : 225
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Sam 28 Jan 2012, 20:23   Citer 

et c'est parti:


Code

:Disp"NE PAS APPUYER","2FOIS SUR LA MEME TOUCHE","LES EMPLACEMENTS SONT CEUX DU","PAVE NUMERIQUE"
:Pause
:0->X                   //ces quelques lignes paraissent servir a rien
:45->A                  //mais elles sont essentiel sinon le code bug
:46->B                   // les nombres importe peut sauf le X
:47->C
:48->D
:49->E
:50->F
:51->I
:52->J
:53->K
:Lbl0
:Menu(">MORPION<","JOUEUR1",1,"JOUEUR2",2)
:Lbl1
:X+1->X
:1->U
:Goto5
:Lbl2
:2->U
:X+1->X
:Goto5
:Lbl5
:EffEcr
:Input " ",O
:If O=9
:U->A
:If O=8
:U->B
:If O=7
:U->C
:If O=6
:U->D
:If O=5
:U->E
 :If O=4
:U->F
:If O=3
:U->I
:If O=2
:U->J
 :If O=1
:U->K
:If A=D=I ou B=E=J ou C=F=K ou A=B=C ou D=E=F ou I=J=K ou A=E=K ou C=E=I
:Goto3
:Effecr
:If C<3
:Output(1,4,C
:If B<3
:Output(1,5,B
:If A<3
:Output(1,6,A
:If F<3
:Output(2,4,F
:If E<3
:Output(2,5,E
:If D<3
:Output(2,6,D
 :If K<3
:Output(3,4,K
:If J<3
:Output(3,5,J
:If I<3
:Output(3,6,I
:Pause
:If X=9
: Goto4
: Goto0
:Lbl3
:EffEcr
:Disp"JOUEUR",U,"A GAGNE"
:Stop
:Lbl4
:EffEcr
:Disp"EGALITE","RECOMMENCEZ..."
:Stop


ca devrait etre bon cette fois..

----------------------
L’erreur est humaine, mais pour provoquer une vraie catastrophe, il faut un ordinateur.

je suis premier!!!

je m'aime.
 Adresse email Haut de page Bas de page 
 
Erdnuss



Autorisation : Membre
Nb de messages : 30
Inscrit le : Mer 14 Déc 2011, 20:42
Posté le : Dim 29 Jan 2012, 14:58   Citer 


Code
:Disp"NE PAS APPUYER","2FOIS SUR LA MEME TOUCHE","LES EMPLACEMENTS SONT CEUX DU","PAVE NUMERIQUE"
:Pause
:EffvarX                   //1octet en -
:For(A,1,9
:A+44->L1(A
:End
:Lbl0
:Menu(">MORPION<","JOUEUR1",1,"JOUEUR2",2)
:Lbl1
:X+1->X
:1->U
:Goto5
:Lbl2
:2->U
:X+1->X
:Goto5
:Lbl5
:EffEcr
:Input " ",O
:U->L1(10-O
:For(A,1,3
:If L1(A)=L1(A+3)=L1(A+6)ou L1(A)=L1(1+A)=L1(A+2)ou L1(1)=L1(5)=L1(9)ou L1(3)=L1(5)=L1(7):Goto3
:End
:Effecr
:For(A,1,9
:If 3>L1(A
:Output(Ent(A/3),3Partdec(A/3),L1(A
:End
:Pause
:If X=9
: Goto4
: Goto0
:Lbl3
:EffEcr
:Disp"JOUEUR",U,"A GAGNE"
:Stop
:Lbl4
:EffEcr
:Disp"EGALITE"
:Stop



Voila avec des listes j espere que ca allege le code, il y a aussi la possibilite de faire un for des deux.
Je ne l ai pas teste

----------------------
Il y a 11 sortes de personnes. Ceux qui connaissent le unaire et ceux qui ne le connaissent pas.
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 29 Jan 2012, 15:25   Citer 

t'es sur de ta série d'égalitées?

je demande car L1(A)=L1(A+3)=L1(A+6) est vérifié que ssi L1(A)=L1(A+3) et L1(A+6)=1 OU L1(A)=!=L1(A+3) et L1(A+6)=0

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Beunoit
Invité
Posté le : Dim 29 Jan 2012, 18:28   Citer 

Déjà merci pour avoir pris la peine de faire ça, mais j'aurais voulu savoir comment on fait le "ou" :/

  Haut de page Bas de page 
 
Cytropus



Autorisation : Membre
Nb de messages : 409
Inscrit le : Lun 07 Nov 2011, 12:09
Posté le : Dim 29 Jan 2012, 19:10   Citer 

Le "ou" ce trouve dans [2nde]+[math]+[droite]+[2]

----------------------
Le nouveau site de tout82
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Poster un nouveau sujet Poster une réponse Page: 1,      >>





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink