Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Besoin d'aide verification Morpion
saucisson_furtif le 05/04/2012 à 22:41
Hello!
J'ai besoin d'aide pour la suite de mon morpion, il est complètement fonctionnel et extrêmement léger (moins de 400 Octets) mais je na vois pas comment coder un programme qui pourrait reconnaître qui a gagné, pour l'instant faut appuyer sur + ou * pour augmenter les scores manuellement...
Code
: 0=>A
: 0=>B
: Lbl 0
: EffEcr
: Output(2,11,"J1
: Output(2,14,A
: Output(6,11,"J2
: Output(6,14,B
: 1=>M
: Disp "+-+-+-+","! ! ! !","+-+-+-+","! ! ! !","+-+-+-+","! ! ! !","+-+-+-+
: Lbl 1
: M+1=>M
: 0=>K
: While K=0
: codeTouche=>K
: End
: If K[Sup ou egal]92 et K[Inf ou egal]94:6=>Y
: If K[Sup ou egal]82 et K[Inf ou egal]84:4=>y
: If K[Sup ou egal]72 et K[Inf ou egal]74:2=>Y
: If K=72 ou K=82 ou K=92:2=>X
: If K=73 ou K=83 ou K=93:4=>X
: If K=74 ou K=84 ou K=94:6=>X
: (-1)^M=>N
: If N=-1 et K[Different de]75 et K[Different de]95:Output(Y,X,''0
: If N=1 et K[Different de]75 et K≠95:Output(Y,X,''X
: If K=103:Goto 0
: If K=75
: Then
: A+1=>A
: Output(2,14,A
: End
: If K=95
: Then
: B+1=>B
: Output(6,14,B
: End
: Goto 1
Certes c'est pas graphique, mais c'est très léger et quand même agréable à jouer. Par ailleur si quelqu'un trouve comment l'alléger encore plus, je suis preneur!
Merci d'avance

Sangohan38 le 06/04/2012 à 10:48
Il te faut stocker la variable N soit dans une liste, soit dans d'autres variables selon la touche et si la somme de celles-ci vaut 3, tu affiche le gagnant.
Concrètement, j'arrive à ceci sur mon programme optimisé:
Code
EffEcr
EffListe L
9ü (
) dim(L
1ü (
) A
Disp "+-+-+-+","! ! ! !","+-+-+-+","! ! ! !","+-+-+-+","! ! ! !","+-+-+-+"
Lbl 1
0ü (
) K
codeTouch(ü (
) K
partEnt(.1K-6)ü (
) Y
10partD–c(.1K)-1ü (
) X
If X<1 ou X>3 ou Y<1 ou Y>3 ou 1=abs(X+L(3(Y-1
Goto 1
If A=1:Output(2Y,2X,"X
If A=ú (
) 1:Output(2Y,2X,"O
ú (
) Aü (
) A
Aü (
) L(X+3(Y-1
If 1ø(abs(L(1)L(2)L(3))abs(L(4)L(5)L(6))abs(L(7)L(8)L(9))abs(L(1)L(4)L(7))
abs(L(2)L(5)L(8))abs(L(3)L(6)L(9))abs(L(1)L(5)L(9))abs(L(3)L(5)L(7
Goto 1
abs(A)+(A=1->B
Output(8,1,"JOUEUR GAGNE!"
Output(8,8,B
Pause
EffEcr
Output(1,1,"
Sangohan38
The K le 06/04/2012 à 15:11
Sango il y a quelques coquilles & caractères spéciaux dans ton code

Persalteas le 06/04/2012 à 16:31
ü c'est sto->
ú c'est le moins de la négativité.saucisson_furtif le 06/04/2012 à 19:54
Wahou merci beaucoup sangohan! Juste un truc, que signifient abs et ø? Ca me bloque j'arrive pas à comprendre le programme là xDsandro le 06/04/2012 à 22:50
le rond barré m'a l'air ici d'être le signe différent de.
Sinon abs( est la fonction valeur absolue qui se trouve dans le menu math/num/1
enfin, pour optimiser, je pense que si tu veux rajouter la vérification de victoire, il vaut mieux commencer par créer celle_ci et optimiser ensuite, vu qu'elle risque d'entrainer un certain nombre de modifications.
SandroXemnas le 25/04/2012 à 18:51
Essaie d'ffecter une variable à chaque case pour chaque joueur. variable=0 : aucun symbole dans la case. variable=0 : symbole rond ou croix. Ensuite à toi de faire coincider pour que quand trois même symbole sont alignés le programme le détecte et dise qui est gagnant.
ça te bouffe beaucoup de mémoire comme ça, et beaucoup de variables mais c'est sûrement le mieux.Sangohan38 le 26/04/2012 à 16:20
A mon avis le mieux reste d'utiliser la liste où la matrice car tu peux faire une boucle de 1 à 3 pour détecter les lignes et colonnes.
Sangohan38 Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.