Poster un nouveau sujet Poster une réponse Page: 1, ,      >>
Tetris
Auteur Message
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Sam 24 Oct 2009, 20:09   Citer 

J'ai vu que plusieurs personnes recherchent un Tetris,et c'est vrai que ça manque au forum,mais j'ai la flemme de le faire tout seul,surtout que c'est pas ce qu'il y a de plus simple,donc tout ceux que ça interresse,faites-le avec moi.
J'ai déjà commencé un bout de code expérimental:

Code
EffVar [A]
{9,12}üdim([A]
For(X,1,12
1ü[A](9,X
End
EffEcr
Pause
For(Y,1,8
Output(Y,4,"!
End
9üX
Lbl 1
For(Y,1,8
0üK
codeTouch(üK
XüA
X-(K=24)+(K=26)üX
X-(Xù17)+(X÷4)üX
If Yø1
Output(Y-1,A,"
Output(Y,X,"0
If [A](Y+1,X-4)=1
Goto 2
End
Goto 1
Lbl 2
0üC
1ü[A](Y,X-4
For(A,1,12
C+[A](Y,A)üC
End
If C=12
Then
For(A,1,12
0ü[A](Y,A
Output(Y,5,"           
End
End
Goto 1



Il faut encore que les "0" descendent quand une ligne est complétée.
Après on verra pour transformer ces 0 en blocs,mais là ce serait plus facile dans le graffe,cependant j'ai peur que le programme final soit lourd et lent.

edit:Si ça n'intéresse personne je laisse tomber.

 Adresse email Haut de page Bas de page 
 
denis



Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
Posté le : Dim 01 Nov 2009, 17:37   Citer 

Moi je veux bien essayer !!

 Adresse email Haut de page Bas de page 
 
denis



Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
Posté le : Dim 01 Nov 2009, 17:51   Citer 

Alors, ce début de programme :

Il fait descendre des "0" qui s'enpile les uns sur les autres
Et on peut les déplacer a droite ou a gauche avec les fléches de la calto.
J'ai quelque qustions :
Tu utilise une matrice mais comment fait tu pour que les blocs s'enpile? Des que un bloc arrive en bas sa position dans la matrice prend une valeur différente des position où il n'y a pas encore de blocs?

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Lun 02 Nov 2009, 12:02   Citer 

Voilà c'est ça.
Mais faudrait voir à utiliser le graph et a enlever la matrice pour que ce soit et plus rapide.

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Lun 02 Nov 2009, 12:23   Citer 

tu veux faire avec des pxl test ?
je pense qu'il y a un meilleur rapport rapidité/simplicité avec une matrice non ?

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Lun 02 Nov 2009, 12:44   Citer 

C'est sûr que c'est plus simple d'utiliser la matrice,mais ça dépend aussi du nombre de "carrés" qu'il y aura,parce que ça risque de prendre beaucoup de place avec la matrice.

 Adresse email Haut de page Bas de page 
 
denis



Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
Posté le : Lun 02 Nov 2009, 13:17   Citer 

D'un coté pxl-test ça serait plus ligth que une matrice, mais comment savoir si une ligne est complété sans matrice?? ahh.gif

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Lun 02 Nov 2009, 13:27   Citer 

et puis pour faire desendre les lignes quand on détruit la dernière...
ce ne sera pas évidant non plus sans matrice cry.gif

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 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 : Lun 02 Nov 2009, 13:30   Citer 

Un Tetris ça représente une matrice 10*16 donc 1451 octets d'après ma calculatrice et c'est énorme.
De plus, cela risque de ralentir le jeu de l'utiliser au lieu d'utiliser des pxl-test.
Pour vérifier les lignes, c'est pas compliquer à chaque fois qu'un objet est stoppé par le bas où un autre, on fait les pxl-test des deux lignes qui le compose (soit 20 pxl-test).
Donc ce sera plus léger (où light pour les anglophones).

Sangohan38

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Lun 02 Nov 2009, 18:04   Citer 

Donc si j'ai bien compris,les carrés feraient chacun 5 pixels de côté ?

PS:Le problème c'est que certains objets sont composés de plus de 2 lignes,et d'autres de plus de 2 carrés de large,de plus, avec 20 pxl-tests le jeu est pas près d'aller vite.En plus q'y faut encore un codetouch pour déplacer l'objet et le faire changer de sens.

Faut donc trouver un système qui permet de savoir quelles sont les faces de chaque objets qui soient capables de l'arrêter puis faire un pxl-test pour ces deux (ou 3 ou 4) faces,le jeu devrait être plus rapide.

 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 : Lun 02 Nov 2009, 18:35   Citer 

Après tests, il s'est avéré que chaque carré fait 3 pixel de côté.
Sinon 20 pxl-test, c'est assez rapide à faire: une boucle de 1 à 10 dans une boucle allant de 1 à 2 et le tours est joué.
Bon comme tu dit il faut dans certains cas vérifier 3 lignes et bien il suffit de mettre un 3 dans la boucle au lieu d'un deux.
Pour ton système de face, j'avoue ne pas avoir bien compris: tu veux que l'on vérifie la forme de l'objet avant de tester? Si c'est ça, il suffit de mettre 1,2,3 ou 4 dans une variable et au moment du test on vérifie pour ensuite regarder si on fait une boucle de 1 à 2 où de 1 à 3 mais je ne suis pas sur que ce soit plus rapide.

Sangohan38

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Mar 03 Nov 2009, 14:51   Citer 

Ouais c'est bien ce que je voulais dire.
Faudra essayer des deux manières,mais le dernier programme que j'ai fait et qui utilise les pixel-Test c'étais pas une flèche.

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
denis



Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
Posté le : Mar 03 Nov 2009, 15:57   Citer 

Et si au lieu d'utiliser 20 pxl-test on utisilser une liste ?
On utilise les pxl-test juste pour "arreter" les blocs qui descendent.
Et la liste représente les 2 dernieres lignes qui sont en cours de "replissage".

Ne serait-ce point plus rapide? ahh.gif

Autre chose, afficher des blocs de 3x3 ça prend du temps à la calculette.
pourquioi pas faire des blocs 2x2? Dans ce cas là, il suffirait de reduire la taille de chaques blocs et le tour et joué nn?
Seul bémol, avoir une bonne vue parce que ça devient petit sur la calculatrice...

Enfin, je me demandait, le plus efficace pour afficher un blocs 3x3 c'est

ça :


Code
pxl-on(y,x)
pxl-on(y+1,x)
pxl-on(y+2,x)
pxl-on(y+3,x)
pxl-on(y+1,x+1)
pxl-on(y+2,x+1)
pxl-on(y+3,x+1)
etc...



ou une boucle :


Code
For(A,0,2)
For(B,0,2)
Pxl-test(y+B,x+A)
End
End



 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Mar 03 Nov 2009, 19:37   Citer 

il ya beaucoup plus simple !!! bigmouth.gif


Code
pts-on(X,Y,2



----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
denis



Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
Posté le : Mar 03 Nov 2009, 19:48   Citer 

ça marche aves pxl-on(y,x,2 ????? ahh.gif ahh.gif ahh.gif

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Mar 03 Nov 2009, 20:03   Citer 

non il faut mettre point et non pixel

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
denis



Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
Posté le : Mar 03 Nov 2009, 20:40   Citer 

Dommage, Dommage...

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Mar 03 Nov 2009, 22:18   Citer 

pourquoi dommage ?
ça change presque rien. . .

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
denis



Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
Posté le : Mer 04 Nov 2009, 10:12   Citer 

Beh si ça change tout parce que "pt-test" ça existe pas !

Et je "pt-on" et "pxl-test" soit faisable. le premier tient compte des axes du graph et l'autre nn...

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Mer 04 Nov 2009, 10:34   Citer 

si tu met cette fenêtre c'est réglé :
Xmin: 0
Xmax: 94
Ymin: -62
Ymax: 0

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Mer 04 Nov 2009, 11:28   Citer 

Voilà ma version bigmouth.gif :

Je la trouve assez rapide mais les blocs sont tous des carrés. happy.gif
Dès que j'essaie de faire un tirage aléatoire entre deux formes le jeu ralentit énormément cry.gif, je ne sais pas comment faire...

Code
EffDessin
0->Xmin
94->Xmax
0->Ymax
(-)62->Ymin
(-)1->;P
For(Z,0,1
Ligne(0+Z,0,0+Z,(-)62
Ligne(47+Z,0,47+Z,(-)62
Ligne(2,(-)1+Z,46,(-)1+Z
End
Ligne(2,(-)62,46,(-)62
Texte(3,60, «TETRIS !
Texte(30,58, « POINTS :
Lbl 1
P+1->P
Texte(30,85,P
21->X :(-)3->Y
Lbl 2
codeTouche->T
X->N :Y->O
If T=24 et pxl-Test((-)Y,X-2)=0
X-3->X
If T=26 et pxl-Test((-)Y,X+2)=0
X+3->X
If T=34 et pxl-Test((-)Y+5,X)=0
Y-6->Y
If pxl-Test((-)Y+2,X)=0
Y-3->Y
Pt-Off(N,O,2
Pt-On(X,Y,2
If pxl-Test((-)Y+2,X)=1:Then
0->[theta]
If Y=(-)6:Stop
For(Z,2,44,3
If pxl-Test((-)Y,Z)=0
1->[theta]:End
If [theta]=0:Goto 3
Goto 1:End
If T=105
Pause
If T=45:Stop
Goto 2
Lbl 3
(-)Y->A
Repeat  A=6
For(Z,2,44,3
If pxl-Test(A-2,Z)=1:Then
Pt-On(Z+1,(-)A,2
Else
Pt-Off(Z+1,(-)A,2
End
End:A-3->A:End
Goto 1



----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Jeu 05 Nov 2009, 19:02   Citer 

Eh,je viens de recopier,ça marche !
Pour moi ça peux nous sevir de base,si tu peux,faudrait que tu dises le rôle de chaque variable,on gagnerais du temps.
Juste un truc,pour le Text qui affiche les points faut remplacer le 85 par un 88.

 Adresse email Haut de page Bas de page 
 
Floyd The Wolf
Avatar

Autorisation : Membre
Nb de messages : 14
Inscrit le : Mer 04 Nov 2009, 18:35
Posté le : Jeu 05 Nov 2009, 20:47   Citer 

Sinon si ça vous intéresse, j'avais déjà vu quelque part (je ne sais plus où) un tétris dont les blocs sont simplement composés de la lettre 'L'.
Il faut avoir un brin d'imagination (faut penser à des tablettes de chocolat exposées à la lumière et dont seulement 2 côtés sont dans l'ombre)...
Ce qui donnerait quelque chose du genre


Code

    L      L
   LLL     L
           L

LLL   LLLLL  LLL
LLLLLLLLLLL  LLL



ça ne rend pas très bien avec le code, mais sur la calto, c'est flagrant.

 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 Nov 2009, 7:17   Citer 

Je l'avais télécharger ce tétris et il fonctionnait très mal: trop lent et avec des erreurs de copies (c'était un fichier 82p testé directement sous VTI).

Sangohan38

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Ven 06 Nov 2009, 18:25   Citer 

puis je ne vois pas trop l'interet d'utiliser des L, autant utiliser des O happy.gif

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Ven 06 Nov 2009, 18:41   Citer 

@Rézus
Pour le texte en effet winkle.gif , 85 c'est si on ne met pas d'espace avant les :

Liste des variables :
  • P: les points
  • X: abscice du bloc
  • Y: ordonée du bloc
  • N: abscice du bloc avant mouvement
  • O: ordonée du bloc avant mouvement
  • T: code touche
  • Z: plusieures utilités dans des For
  • [theta]: test ligne complette
  • A: ligne étant remplacé par celle du dessus


----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Ven 06 Nov 2009, 19:34   Citer 

Merci,je me met au travail.

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Dim 08 Nov 2009, 18:54   Citer 

Voilà,je suis parti du programme de sypotu que j'ai modifié pour que le jeu soit plus rapide.Maintenant,ce sont des objets entiers qui tombent,reste a trouver un algorithme qui permettrai de faire pivoter les objets.


Code
:EffDessin
:CoordRect:QuadNAff:AxesNAff
:0->Xmin:0->Ymax:94->Xmax:-62->Ymin
:For(Z,0,1
:Ligne(Z,0,Z,-62
:Ligne(47+Z,0,47+Z,-62
:End
:Ligne(0,-62,46,-62
:Lbl A
:0->D:3->E:3->F:3->G:3->I:0->J:3->H
:entAléat(1,5->C
:If C=2
:Goto 2
:If C=3
:Goto 3
:If C=4
:Goto 4
:If C=5
:Goto 5
:Lbl B
:21->X:-3->Y
:For(Z,0,9E99
:X->N:Y->O
:Y-3->Y
:codeTouch->T
:X-3(T=24)+3(T=26)->X
:If pxl-Test(-Y+1,X)=1 ou pxl-Test(-Y-J+1,X+I)=1
:N->X
:Pt-Off(N,O,2
:Pt-Off(N+I,O+J,2
:Pt-Off(N+D,O+E,2
:Pt-Off(N+F,O+G,2
:Pt-On(X,Y,2
:Pt-On(X+I,Y+J,2
:Pt-On(X+D,Y+E,2
:Pt-On(X+F,Y+G,2
:For(Z,0,H,3
:If C=5 et Z=H et pxl-Test(-Y-J+2,I)=1
:Goto C
:If pxl-Test(-Y+2,X+Z)=1
:Goto C
:End
:End
:Lbl C
:If Y[> ou =]-6
:Stop
:0->A
:For(Z,2,44,3
:A+pxl-Test(-Y+1,Z->A
:End
:If A<15
:Goto A
:-Y->A
:Repeat A[< ou =]6
:For(Z,3,45,3
:If pxl-Test(A-2,Z)=1
:Pt-On(Z,-A,2
:If pxl-Test(A-2,Z)=0
:Pt-Off(Z,-A,2
:End
:A-3->A
:End
:Goto A
:Lbl 2
:6->I:3->D:0->E:6->H
:Goto B
:Lbl 3
:0->F:6->G
:Goto B
:Lbl 4
:9->I:6->D:0->E:0->G:9->H
:Goto B
:Lbl 5
:6->I:3->J:3->D:0->E:6->H
:Goto B



J'ai testé et j'ai pas trouvé de bug mais ça ne veut pas dire qu'il n'y en a pas.
Pour les variables,j'ai rajouté:
-les couples (D;E) et (F;G) qui sont les coordonnées par rapport a X et a Y des points 3 et 4 de chaque objet.
-Le couple (I;J):les coordonnées du point 2 de chaque objet qui est toujours le point le plus à droite.
-H:le nombre de pixels de toutes les faces inférieures de chaque objet (sauf les deux pixels a l'extrème limite.
-C:Le type d'objet
C=1 c'est le carré
C=2 c'est le triangle
C=3 c'est le "L"
C=4 c'est la barre
C=5 c'est le "carré décalé"

Et vous vous en êtes où ?

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Dim 08 Nov 2009, 22:56   Citer 

SUPER ! bigmouth.gif
Ça marche niquel !!!
la je suis trop fatigué mais demain je réfléchit à l'algorythme de rotation. winkle.gif
Encore bravo !

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Lun 09 Nov 2009, 18:50   Citer 

Ou pas,j'ai oublié de mettre le "L" à l'envers,il faudrait le rajouter pour C=6,j'ai pas mis non plus le "carré décalé" vers la gauche. moodforlove.gif
Et du coup,comme le programme fait le pixel-Test de tous les points en dessous de Y,X et que pour le carré décalé la base de l'objet est plus basse que Y,le pixel-Test est effectué dans l'objet et pas à sa base,il faudrait rajouter 3 variables qui permettraient de gérer le décalage.

Enfin je me comprends,c'est difficile à expliquer,tu me comprendras quand tu auras étudié le programme.

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Lun 09 Nov 2009, 20:08   Citer 

Ouai mais bon je pense que pour les blocs il y en a assez pour le moment, on verra à la fin.

Pour l'autre pb je comprends puisque ayant essayer de faire le même prgm j'ai eu le même pb. Je réfléchit a une solution... winkle.gif

une petite étourderie :
6->H à rajouter dans le Lbl 3

à rajouter pour la rotation (avec fleche du haut) entre les pts-off et les pts-on :

Code
If T=25 et C=/=1:Then
I->Z:J->I:Z->J
D->Z:E->D:Z->E
F->Z:G->F:Z->G
If C=2 ou C=3:Then
F->Z:I->F:Z->I
G->Z:J->G:Z->J
End:End



----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 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 : Mar 10 Nov 2009, 7:13   Citer 

Ce serais plus rapide de faire un label car en terme de vitesse, un label ralentis moins qu'un Then/End.

Sangohan38

 Adresse email Haut de page Bas de page 
 
dysto



Autorisation : Membre
Nb de messages : 200
Inscrit le : Mar 20 Oct 2009, 18:58
Posté le : Mer 11 Nov 2009, 2:14   Citer 


Code
C=/=1



??????

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Mer 11 Nov 2009, 8:17   Citer 

Alors happy.gif
=/= c'est le signe différent de

et avec les lbl ça donne :
-à rajouter entre les Pt-Off et les Pt-On :

Code
If T[différent de]25 ou C=1
Goto D
I->Z:J->I:Z->J
D->Z:E->D:Z->E
F->Z:G->F:Z->G
If C[différent de]2 et C[différent de]3
Goto D
F->Z:I->F:Z->I
G->Z:J->G:Z->J
Lbl D



----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Mer 11 Nov 2009, 21:15   Citer 

Le problème avec cet algorithme c'est que les pièces ne font pas une rotation par exemple:
Code
O
O
OO

devient
Code
O
OOO

,puis redevient un "L" normal si on réappuis.

J'ai remplacé le code de Sypotu après le if T[différent ce]25 ou C=1 par

Code
:I->J:-J->I:Z->J
:D->Z:-E->D:Z->E
:F->Z:-G->F:Z->G


La rotation se fait bien mais il arrive un moment où le bloc de coordonnées (X;Y) se retrouve au dessus d'un autre bloc,du coup le pxl-Test est égal à 1 et l'objet s'arrête tout seul dans le vide.

Alors Casse-tête:
soit un point de coordonnées (X;Y) et un point de coordonnées (X+I;Y+J) si X<X+I ou Y<Y+J,il faut que les deux points s'inversent autrement dit X devient X+I et X+I devient X,idem avec Y et Y+J.

J'avais donc mis dans un label le code suivant:

Code
:X+I->Z
:X->¤
:Z-¤->I
:Z->X



Mais j'ai pas eu le temps de finir,ni de reprogrammer depuis avant-hier.
PS:Après il faut rajouter un Lbl pour redéfinir les variables I,J,D,E,... pour chaque pièce lorsqu'il y a rotation puisqu'elle n'a plus le même nombre de blocs sur son "pied" et que ce pied change de forme.
PS2:J'ai aussi rajouté les deux types d'objets qui manquent et les trois variables K,L,M,qui permettent de faire le pixel-Test des points qui sont sous le pied quelque soit sa forme.

D'ailleurs voilà mon code (pas fini et sans l'inversion des points parce que j'ai eu piti problème):

Code
EffDessin
CoordRect:QuadNAff:AxesNAff
0üXmin:0üYmax:94üXmax:ú62üYmin
For(Z,0,1
Ligne(Z,0,Z,ú62
Ligne(47+Z,0,47+Z,ú62
End
Ligne(0,ú62,46,ú62
Lbl A
0üD:3üE:3üF:3üG:3üI:0üJ:3üH:ú1üK:ú1üL:0üM
entAl–at(1,7üC
If C=2
Goto 2
If C=3
Goto 3
If C=4
Goto 4
If C=5
Goto 5
If C=6
Goto 6
If C=7
Goto 7
Lbl B
21üX:ú3üY
For(Z,0,9û99
XüN:YüO
Y-3üY
codeTouch(üT
X-3(T=24)+3(T=26)üX
If pxl-Test(úY+2,X)=1 ou pxl-Test(úY-J+2,X+I)=1
NüX
Pt-NAff(N,O,2
Pt-NAff(N+I,O+J,2
Pt-NAff(N+D,O+E,2
Pt-NAff(N+F,O+G,2
If Tø25
Goto B4
IüZ:úJüI:ZüJ
DüZ:úEüD:ZüE
FüZ:úGüF:ZüG
Goto B4
If C=2
Goto E2
If C=3
Goto E3
If C=4
Goto E4
If C=5
Goto E5
If C=6
Goto E6
If C=7
Goto E7
Lbl B4
Pt-Aff(X,Y,2
Pt-Aff(X+I,Y+J,2
Pt-Aff(X+D,Y+E,2
Pt-Aff(X+F,Y+G,2
For(Z,0,H,3
If ZùK et Z÷L et pxl-Test(úY+2,X+Z)=1
Goto C
If ZùK et Z÷L
End
If pxl-Test(úY+2+M,X+Z)=1
Goto C
End
End
Lbl C
If Yùú6
Stop
0üA
For(Z,2,44,3
A+pxl-Test(úY+1,ZüA
End
If A<15
Goto A
úYüA
Repeat A÷6
For(Z,3,45,3
If pxl-Test(A-2,Z)=1
Pt-Aff(Z,úA,2
If pxl-Test(A-2,Z)=0
Pt-NAff(Z,úA,2
End
A-3üA
End
Goto A
Lbl 2
6üI:3üD:0üE:6üH
Goto B
Lbl 3
0üF:6üG:6üH
Goto B
Lbl 4
9üI:6üD:0üE:0üG:9üH
Goto B
Lbl 5
3üD:6üG
Goto B
Lbl 6
6üI:3üJ:3üD:0üE:6üH:0üK:4üL:ú3üM
Goto B
Lbl 7
6üI:ú3üJ:3üD:0üE:ú3üG:6üH:0üK:2üL:3üM
Goto B
Lbl E2
Lbl E3
Lbl E4
Lbl E5
Lbl E6
Lbl E7



Désolé j'ai pas le temps de le rendre plus lisible ce soir.

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Mer 11 Nov 2009, 22:27   Citer 

Oulah !
Ça commence à devenir compliqué !
Mais je pense que tu te rapproche de la fin winkle.gif
Bravo et bon courage pour la suite !

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Jeu 12 Nov 2009, 18:31   Citer 

Eh ! me laisse pas ! chuis atteint de flemmite aigue !!

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Jeu 12 Nov 2009, 22:07   Citer 

bon alors demain je me remet au boulôt ! bigmouth.gif

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Ven 13 Nov 2009, 16:49   Citer 

J'ai testé avec les nouvelles formes et les variables K,L,M ça marche plutôt bien.
Par contre la nouvelle rotation ne marche pas, on se retrouve avec un bloc en 2 partie happy.gif

Je me demande si il est vraiment utile dde faire une rotation complette...Qu'en pensez vous ?
Voici la liste des blocs avec leur rotation non complette :

Code
OO
OO

 O     O
OOO -> OO
       O   

O
O -> O
OO   OOO

 O
 O -> OOO
OO    O

        O
OOOO -> O
        O
        O

 OO    O
OO -> OO
      O

OO     O
 OO -> OO
        O



----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Ven 13 Nov 2009, 19:52   Citer 

Oui c'est vrai,ma rotation bug pour certains objets,je suis en train d'y réfléchir.
Le problème c'est que la rotation incomplète ne permet pas d'avoir des pièces comme

Code
OOO
 O

OO
O
O



Après si on peut reprendre ton système en trouvant un moyen de continuer la rotation je suis pour.Au début je l'avais fait avec deux touches mais c'était le bordel j'ai arrêté,faudrai peut-être y réfléchir

 Adresse email Haut de page Bas de page 
 
Rézus



Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
Posté le : Sam 14 Nov 2009, 18:49   Citer 

Qu'est-ce que t'en dis ?

 Adresse email Haut de page Bas de page 
 
WoKeRnOZ



Autorisation : Membre
Nb de messages : 57
Inscrit le : Ven 13 Nov 2009, 22:24
Posté le : Sam 14 Nov 2009, 19:45   Citer 

Faire des progs en output, c'est des choses, et j'men sort, mais alors avec le graph xD
J'capte rien a votre tetris la :/ crazy.gif
Genre Pxltest et tout, je sais meme pas c'que c'est..
Apres p'tetre que en me penchant mieux dessus... bigmouth.gif

----------------------
Calculatrice Ti-82 stats fr(sans cable)
Et Ti-82 basique (sans cable non plus :o)

Programmeur novice à la recherche du programme parfait (h)
 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Sam 14 Nov 2009, 20:12   Citer 

ouai avec 2 bouton on doit pouvoir faire un truc pas trops mal... j'y réfléchis...

@ WoKeRnOZ
bin c'est pas bcp plus compliqué winkle.gif
lis le chapitre 8:DESSIN de la notice happy.gif

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
dysto



Autorisation : Membre
Nb de messages : 200
Inscrit le : Mar 20 Oct 2009, 18:58
Posté le : Sam 14 Nov 2009, 21:09   Citer 

C'est pas bien compliqué, de tête me semble que ça donne :


Pxl-On(X,Y) : Allume un Pixel aux coordonnées X,Y.
Pxl-Off(X,Y) : Éteint " " " " " " " " " " " ".
Pt-On(X,Y,F) : Allume un petit carré de 3*3 si F=2, un petit plus si F=3 et un pixel unique si F=1 aux coordonnées X,Y.
Pt-Off(X,Y,F) : Éteint " " " " " " " " " " " ".
Pxl-Change(X,Y) : Sers d'interrupteur. Si il y a un pixel allumé en X,Y, il sera éteint et inversement.
Pt-Change(X,Y) : Idem je crois. Contrairement au Pt-On ou Pt-Off, il n'y a pas de possibilité de choisir une forme.
Pxl-Test(X,Y) : Renvoie 1 si il y a un pixel allumé en X,Y sinon renvoie 0.


Voila un petit résumé pour les POINTS ^_^ !

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Sam 14 Nov 2009, 22:32   Citer 

Voilà ! c'est ce que j'avais la flemme d'écrire ^^ merci dysto !

juste pour ce qui est en pxl ce n'est pas au coordonnées x,y mais comme Output à ligne,colonne
Houla ! Je sais pas si c'est compréhensible ce que je dis happy.gif

----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
dysto



Autorisation : Membre
Nb de messages : 200
Inscrit le : Mar 20 Oct 2009, 18:58
Posté le : Sam 14 Nov 2009, 23:46   Citer 

Oui, dans le graph, Y varie entre 0 et 62 et X entre 0 et 94.

 Adresse email Haut de page Bas de page 
 
sypotu
Avatar

Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
Posté le : Dim 15 Nov 2009, 7:39   Citer 

le mieux c'est de faire un exemple :
  • pt-on(0,0) affiche un point de coordonée 0,0 il est donc au croisement des deux axes. Si on modifie la fenêtre, sa position change.

  • pxl-on(0,0) allume le pixel à l'angle en haut à gauche (1ère ligne/1ère colone) et pxl-on(62,94) le pixel en bas à gauche. Ces positions sont toujours les même pour n'importe quelle fenêtre.


----------------------
Ti-83+.fr
Passe en 1ère S


Foire Aux Questions__________Traduction des fonctions Anglais/Français
Emplacement des fonctions____Lexique
Liste des jeux
Ouvrir, éditer et créer des .82p ou .83p sans télécharger de logiciel
Logiciel pour prendre des screenshot animés
Hebergeur pour vos .83p
 Adresse email Haut de page Bas de page 
 
WoKeRnOZ



Autorisation : Membre
Nb de messages : 57
Inscrit le : Ven 13 Nov 2009, 22:24
Posté le : Dim 15 Nov 2009, 11:33   Citer 

Aaah ok bigmouth.gif
Merci bigmouth.gif

EDIT : Ok pour pxl test... Mais a quoi sa sert? crazy.gif
Et pxl/pt change j'ai pas trop compris :o

----------------------
Calculatrice Ti-82 stats fr(sans cable)
Et Ti-82 basique (sans cable non plus :o)

Programmeur novice à la recherche du programme parfait (h)
 Adresse email Haut de page Bas de page 
 
dysto



Autorisation : Membre
Nb de messages : 200
Inscrit le : Mar 20 Oct 2009, 18:58
Posté le : Dim 15 Nov 2009, 12:58   Citer 

Oula, Pxl-Test est très très utile !


Code
:If Pxl-Test(0,0)
:Then
:Text(10,0,"IL Y A UN PIXEL EN (0,0)
:Else
:Text(10,0,"IL N'Y A PAS DE PIXEL EN (0,0)
:End



La tu demandes : "Y a t-il un Pixel allumé en 0,0 ?
Et la machine te réponds oui ou non ^_^ !
C'est très utile pour les jeux utilisant le graph !

Et pour Pxl/Pt-change c'est très simple, je vais te faire une démo en utilisant le Pxl-Test :

Code

:If Pxl-Test(0,0)
:Then
:Pxl/Pt-Change(0,0)



La tu demandes à la calto si il y a un pixel allumé en 0,0 et si oui, le Pxl-Change l'éteint en dessous (si il avait était éteint, elle l'aurait allumé).
Bien sur dans cet exemple, c'est mieux d'utiliser un Pxl-On ou Off selon le résultat que l'on souhaite mais c'est un exemple alors ^_^ !

 Adresse email Haut de page Bas de page 
 
WoKeRnOZ



Autorisation : Membre
Nb de messages : 57
Inscrit le : Ven 13 Nov 2009, 22:24
Posté le : Dim 15 Nov 2009, 13:25   Citer 

Ah ok bigmouth.gif
Mais pxl test est utile tout seul?
Parce qu'en l'utilisant en "combo"(bigmouth.gif) avec pxl change, je vois l'utilité, mais tout seul...?
Apres faudrait que je vois dans quels types de programmes j'pourrais utiliser ces fonctions happy.gif

Merci por les explications minied.gif

----------------------
Calculatrice Ti-82 stats fr(sans cable)
Et Ti-82 basique (sans cable non plus :o)

Programmeur novice à la recherche du programme parfait (h)
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse Page: 1, ,      >>





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