J'ai voulu faire un genre de tetris pour m'amuser . Le problème c'est que j'en ai un que je n'arrive pas à résoudre
Voici le code :
Code
:EffEcr
:For(I,1,8)
:Output(I,1,"[")
:Output(I,7,"]")
:End
:{8,5}->dim([G])
:Remplir(10,[G])
:4->X
:0->L
:Lbl A
:entAléat(0,9)->C
:Output(1,X,C)
:Lbl B
:0->M
:While M=0
:codeTouche->M
:End
:If M=24 et X>2
:Then
:Output(1,X," ")
:X-1->X
:Output(1,X,C)
:End
:If M=26 et X<6
:Then
:Output(1,X," ")
:X+1->X
:Output(1,X,C)
:End
:If M=34
:Then
:Output(1,X," ")
:8->Y
:11->I
:While I≠10 et Y>2
:[G](Y,X-1)->I
:If I≠10
:Y-1->Y
:End
:C->[G](Y,X-1)
:Output(Y,X,C)
:Goto C
:End
:If M=25
:Stop
:Goto B
:Lbl C
:For(I,1,7)
:[G](I,3)->D
:If D≠10 et [G](I,1)=D et [G](I,2)=D et [G](I,4)=D et [G](I,5)=D
:Then
:For(J,1,5)
:10->[G](I,J)
:Output(I,J+1," ")
:End
:1->L
:End
:[G](I,2)->D
:If D≠10 et [G](I,4)=D et [G](I,3)=D et [G](I,1)=D
:Then
:For(J,1,4)
:10->[G](I,J)
:Output(I,J+1," ")
:End
:1->L
:End
:[G](I,4)->D
:If D≠10 et [G](I,2)=D et [G](I,3)=D et [G](I,5)=D
:Then
:For(J,2,5)
:10->[G](I,J)
:Output(I,J+1," ")
:End
:1->L
:End
:[G](I,1)->D
:If D≠10 et [G](I,2)=D et [G](I,3)=D
:Then
:For(J,1,3)
:10->[G](I,J)
:Output(I,J+1," ")
:End
:1->L
:End
:[G](I,3)->D
:If D≠10 et [G](I,2)=D et [G](I,4)=D
:Then
:For(J,2,4)
:10->[G](I,J)
:Output(I,J+1," ")
:End
:1->L
:End
:[G](I,5)->D
:If D≠10 et [G](I,3)=D et [G](I,4)=D
:Then
:For(J,3,5)
:10->[G](I,J)
:Output(I,J+1," ")
:End
:1->L
:End
:End
:If L
:Then
:0->L
:Goto D
:Else
:Goto A
:End
:Lbl D
:For(I,1,7)
:For(J,1,5)
:If [G](I,J)=10 et [G](I+1,J)≠10
:Then
:[G](I+1,J)->[G](I,J)
:10->[G](I+1,J)
:Output(I+1,J+1," ")
:Output(I,J+1,[G](I,J))
:End
:End
:End
:Goto C
Comme je le dis en haut ce jeu est une sorte de tetris où il faut aligner 3 chiffres minimum pour les faire disparaître.
Comme vous l'aurez sûrement deviné, gauche droite et bas servent à bouger le chiffre qui se trouve en haut. La flèche du haut sert à stopper le programme.
Pour les variables :
-[G] est la matrice qui sert de grille de repère
-I et J sont utilisées pour les boucles For(
-X et Y sont la position du chiffre qui va tomber
-L est un booléen qui dit 1 si trois, quatre ou cinq chiffres sont alignés
-C (comme caractère) désigne le chiffre en haut
-M (comme mouvement) est utilisé pour codeTouche
-D sert à vérifier si une ligne est ou non
Si vous testez mon jeu vous vous apercevrez qu'il n'est pas fini (loin de là ^^) certes mais aussi que la fonction au Lbl D ne marche à l'envers. En effet au lieu que les chiffres tombent, ils montent
Voilà je pense que tout est dis mais si vous avez des questions hésitez pas. Merci de m'aider
PS : Si vous avez une idée pour réduire le lagg c'est sympa de m'en parler ^^
Game_Over Invité
Posté le : Sam 11 Oct 2008, 16:12
Mince en me relisant je vois qu'à la place du signe "DIFFERENT DE" y'a ≠ donc je vous préviens
Et aussi j'oubliais de dire que dans la matrice je me sert de la valeur 10 pour dire que la case est vide
Oui je suis d'accord avec vous : "X et Y ne sont que des variables" mais avouez quand même que c'est logique que X corresponde aux abscisse et Y aux ordonnées^^