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
Autorisation : Membre
Nb de messages : 879
Inscrit le : Sam 16 Jui 2007, 13:37
Posté le : Sam 11 Oct 2008, 19:14
Je ne voulais pas jouer sur les mots mais juste justifier que ma correction ne prenait pas en compte l'interprétation!
Game_Over Invité
Posté le : Sam 11 Oct 2008, 21:07
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^^