| 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
|
|
|
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
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Ven 06 Avr 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
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
|
Posté le : Ven 06 Avr 2012, 15:11
|
|
|
Sango il y a quelques coquilles & caractères spéciaux dans ton code 
---------------------- 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 ... |
 |
|
| |
Persalteas
Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
|
Posté le : Ven 06 Avr 2012, 16:31
|
|
|
ü c'est sto->
ú c'est le moins de la négativité.
|
 |
|
| |
saucisson_furtif
Autorisation : Membre
Nb de messages : 2
Inscrit le : Jeu 05 Avr 2012, 22:32
|
Posté le : Ven 06 Avr 2012, 19:54
|
|
|
Wahou merci beaucoup sangohan! Juste un truc, que signifient abs et ø? Ca me bloque j'arrive pas à comprendre le programme là xD
|
 |
|
| |
sandro
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
|
Posté le : Ven 06 Avr 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.
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes |
 |
|
| |
Xemnas
Autorisation : Membre
Nb de messages : 12
Inscrit le : Lun 16 Mai 2011, 18:10
|
Posté le : Mer 25 Avr 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
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Jeu 26 Avr 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
|
 |
|
| |
Google_AdSense
|
Publicité
|
|
|
|
| |