Poster un nouveau sujet Poster une réponse
Bug
Auteur Message
Game_Over
Invité
Posté le : Sam 11 Oct 2008, 16:00   Citer 

Salut

J'ai voulu faire un genre de tetris pour m'amuser godgrace.gif . Le problème c'est que j'en ai un que je n'arrive pas à résoudre crazy.gif

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&#8800;10 et Y>2
:[G](Y,X-1)->I
:If I&#8800;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&#8800;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&#8800;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&#8800;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&#8800;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&#8800;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&#8800;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)&#8800;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 crazy.gif

Voilà je pense que tout est dis mais si vous avez des questions hésitez pas. Merci de m'aider cupsmiley.gif


PS : Si vous avez une idée pour réduire le lagg c'est sympa de m'en parler ^^

  Haut de page Bas de page 
 
Game_Over
Invité
Posté le : Sam 11 Oct 2008, 16:12   Citer 

Mince en me relisant je vois qu'à la place du signe "DIFFERENT DE" y'a &#8800; 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 winkle.gif

  Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Sam 11 Oct 2008, 16:15   Citer 

je dirais que ton "tétrisé se déplace du bas vers le haut car dans l'output et les matrices, tu as du mettre Output(X,Y Au lieu de Output(X,8-Y.

Sangohan38

 Adresse email Haut de page Bas de page 
 
coc5
Avatar

Autorisation : Membre
Nb de messages : 891
Inscrit le : Sam 16 Jui 2007, 13:37
Posté le : Sam 11 Oct 2008, 16:46   Citer 

Output(X,9-Y Attention !

----------------------
Ne cliquez pas ici !
 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3370
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Sam 11 Oct 2008, 17:10   Citer 

Effectivement, j'ai pas fait gaffe.

Sangohan38

 Adresse email Haut de page Bas de page 
 
Game_Over
Invité
Posté le : Sam 11 Oct 2008, 18:19   Citer 

En faite vous aviez faux tout les deux parce que les Output prennent d'abord les coordonnées Y et après X ;p

Sinon vraiment merci quand même cupsmiley.gif

  Haut de page Bas de page 
 
coc5
Avatar

Autorisation : Membre
Nb de messages : 891
Inscrit le : Sam 16 Jui 2007, 13:37
Posté le : Sam 11 Oct 2008, 18:22   Citer 

X et Y sont des variables qui peuvent très bien être utilisées comme cela : X=Ordonnée et Y=Abscisse(ma rectification concernait juste le rendu)

----------------------
Ne cliquez pas ici !
 Adresse email Haut de page Bas de page 
 
webmaster
Avatar

Autorisation : Administrateur
Nb de messages : 792
Inscrit le : Mer 18 Aoû 2004, 22:13
Posté le : Sam 11 Oct 2008, 18:24   Citer 


Citer : Game_Over
En faite vous aviez faux tout les deux parce que les Output prennent d'abord les coordonnées Y et après X



C'est petit... Qui a dit que Y correspondait aux lignes et X aux colonnes ?
Ca tombe sous le sens, on précise d'abord la ligne, puis la colonne...

@+ Le Webmaster beer.gif

 Adresse email Haut de page Bas de page 
 
coc5
Avatar

Autorisation : Membre
Nb de messages : 891
Inscrit le : Sam 16 Jui 2007, 13:37
Posté le : Sam 11 Oct 2008, 19:14   Citer 

Je ne voulais pas jouer sur les mots mais juste justifier que ma correction ne prenait pas en compte l'interprétation!

----------------------
Ne cliquez pas ici !
 Adresse email Haut de page Bas de page 
 
Game_Over
Invité
Posté le : Sam 11 Oct 2008, 21:07   Citer 

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^^

  Haut de page Bas de page 
 
coc5
Avatar

Autorisation : Membre
Nb de messages : 891
Inscrit le : Sam 16 Jui 2007, 13:37
Posté le : Sam 11 Oct 2008, 21:14   Citer 

Oui oui on s'est comprit pas la peine de continuer là-dessus -_-

----------------------
Ne cliquez pas ici !
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink