Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Lun 10 Déc 2012, 19:25
J'ai allégé ce programme en perm.Il est (toujours) pas graphique et il devine (toujours) pas quand on a gagné. Le programme fait 400 octet, mais il doit pouvoir être (encore) optimisé.
Notons le léger bug qui fait que lorsque Y est plus petit que 2, c'est "Err:Domain". J'y travaille !
Code
: Lbl A
: ClrHome
: Disp "+--+--+--+","! ! ! !","+--+--+--+","! ! ! !","+--+--+--+","! ! ! !","+--+--+--+"
: Output (1,11,"MORPIO
: Output (3,14, "J-X
: Output (5,14, "J-O
: Output (3,13, ">
: 1->J
: Lbl P
: 2->X : 2->Y
: 2->A : 2->B
: Repeat K=105
: Output (A, B, "
: Output (Y, X, "+
: Y->A : X->B
: getKey->K
: X-3(K=24)+3(K=26->X
: Y-2(K=25)+2(K=34->Y
: If X=11 : 2->X
: If X<2 : 8->X
: If Y=8 : 2->Y
: If Y=1 : 6->Y
: End
: If K=45
: Then
: Goto A
: End
: 3-J->J
: If J=2
: Then
: Output (3,13,"
: Output (5,13,">
: Output (A,B,"
: Output (A,B+1,"X
: Goto P
: End
: If J=1
: Then
: Output (3,13,">
: Output (5,13,"
: Output (A,B,"
: Output (A,B+1,"O
: Goto P
: End
-> flèche sto
> plus grand que
< plus petit que
Clear = recommencer la partie
Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 12 Déc 2012, 19:17
La structure de If/Then/End est fausse.
Tu as mis un Then là où il n'en faut pas et tu as laissé deux vides là où il en faut.
Tu peux remplacer l'incrément de J et sa remise à 1 par "3-J->J".
Tu peux remplacer les lignes du type
: If X=7 and K=24 : 5->X
Par des incréments de X ou Y et des tests de la zone de déplacement en plus des tests de K.
Tu peux aussi associer une touche à chaque case, le pavé numérique par exemple.
(à la place du curseur)
---------------------- 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)
Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Jeu 13 Déc 2012, 20:50
@geeky-TI
Comme je l'ai dit, ce programe ne vérifie pas la victoire. Donc il faut s'attendre à des bugs du genre remplacement des cases, etc... Toujours est il, si j'ai bien compris ta question : placer c'est ENTER. Bonne chance.
@linkakro
Comme tu peux le remarquer en lisant le code, je ne suis pas un bon programmateur, donc j'ai "bricolé". Merci de tes conseils ! J'espère les avoir bien interprétés. Pour le pavé numérique, j'ai un autre morpion en utilisant un, mais c'est plus esthétique avec un curseur (ou pas ?).
: Lbl A
: ClrHome
: Disp "+--+--+--+","! ! ! !","+--+--+--+","! ! ! !","+--+--+--+","! ! ! !","+--+--+--+"
: Output (1,11,"MORPIO
: Output (3,14, "J-O
: Output (5,14, "J-X
: Output (3,13, ">
: 1->J
: Lbl P
: Repeat K
: getKey->K
: End
: If K=72 : Output(2,2,Str1
: If K=73 : Output(2,5,Str1
: If K=74 : Output(2,8,Str1
: If K=82 : Output(4,2,Str1
: If K=83 : Output(4,5,Str1
: If K=84 : Output(4,8,Str1
: If K=92 : Output(6,2,Str1
: If K=93 : Output(6,5,Str1
: If K=94 : Output(6,8,Str1
: If K=45
: Goto A
: 3-J->J
: If J=2
: Then
: "XX"->Str1
: Output(3,13,"
: Output(5,13,">
: Else
: "OO"->Str1
: Output(3,13,">
: Output(5,13,"
: End
: Goto P
---------------------- 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)