Poster un nouveau sujet Poster une réponse
Besoin d'aide verification Morpion
Auteur Message
saucisson_furtif



Autorisation : Membre
Nb de messages : 2
Inscrit le : Jeu 05 Avr 2012, 22:32
Posté le : Jeu 05 Avr 2012, 22:41   Citer 

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 clown.gif

 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 : Ven 06 Avr 2012, 10:48   Citer 

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

 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Ven 06 Avr 2012, 15:11   Citer 

Sango il y a quelques coquilles & caractères spéciaux dans ton code winkle.gif

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL

Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Ven 06 Avr 2012, 16:31   Citer 

ü c'est sto->
ú c'est le moins de la négativité.

 Adresse email Haut de page Bas de page 
 
saucisson_furtif



Autorisation : Membre
Nb de messages : 2
Inscrit le : Jeu 05 Avr 2012, 22:32
Posté le : Ven 06 Avr 2012, 19:54   Citer 

Wahou merci beaucoup sangohan! Juste un truc, que signifient abs et ø? Ca me bloque j'arrive pas à comprendre le programme là xD

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Ven 06 Avr 2012, 22:50   Citer 

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.

Sandro

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



Autorisation : Membre
Nb de messages : 12
Inscrit le : Lun 16 Mai 2011, 18:10
Posté le : Mer 25 Avr 2012, 18:51   Citer 

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.

 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 : Jeu 26 Avr 2012, 16:20   Citer 

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

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Poster un nouveau sujet Poster une réponse





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