| 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
|
|
|
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.
|
 |
|
| |
denis
Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
|
Posté le : Dim 01 Nov 2009, 17:37
|
|
|
Moi je veux bien essayer !!
|
 |
|
| |
denis
Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
|
Posté le : Dim 01 Nov 2009, 17:51
|
|
|
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?
|
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Lun 02 Nov 2009, 12:02
|
|
|
Voilà c'est ça.
Mais faudrait voir à utiliser le graph et a enlever la matrice pour que ce soit et plus rapide.
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Lun 02 Nov 2009, 12:23
|
|
|
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 |
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Lun 02 Nov 2009, 12:44
|
|
|
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.
|
 |
|
| |
denis
Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
|
Posté le : Lun 02 Nov 2009, 13:17
|
|
|
D'un coté pxl-test ça serait plus ligth que une matrice, mais comment savoir si une ligne est complété sans matrice?? 
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Lun 02 Nov 2009, 13:27
|
|
|
et puis pour faire desendre les lignes quand on détruit la dernière...
ce ne sera pas évidant non plus sans matrice 
---------------------- 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 |
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Lun 02 Nov 2009, 13:30
|
|
|
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
|
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Lun 02 Nov 2009, 18:04
|
|
|
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.
|
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Lun 02 Nov 2009, 18:35
|
|
|
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
|
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Mar 03 Nov 2009, 14:51
|
|
|
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.
|
 |
|
| |
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
|
|
|
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?
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 |
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Mar 03 Nov 2009, 19:37
|
|
|
il ya beaucoup plus simple !!!
---------------------- 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 |
 |
|
| |
denis
Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
|
Posté le : Mar 03 Nov 2009, 19:48
|
|
|
ça marche aves pxl-on(y,x,2 ????? 
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Mar 03 Nov 2009, 20:03
|
|
|
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 |
 |
|
| |
denis
Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
|
Posté le : Mar 03 Nov 2009, 20:40
|
|
|
Dommage, Dommage...
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Mar 03 Nov 2009, 22:18
|
|
|
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 |
 |
|
| |
denis
Autorisation : Membre
Nb de messages : 81
Inscrit le : Lun 15 Sep 2008, 17:13
|
Posté le : Mer 04 Nov 2009, 10:12
|
|
|
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...
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Mer 04 Nov 2009, 10:34
|
|
|
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 |
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Mer 04 Nov 2009, 11:28
|
|
|
Voilà ma version :
Je la trouve assez rapide mais les blocs sont tous des carrés.
Dès que j'essaie de faire un tirage aléatoire entre deux formes le jeu ralentit énormément , 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 |
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Jeu 05 Nov 2009, 19:02
|
|
|
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.
|
 |
|
| |
Floyd The Wolf
Autorisation : Membre
Nb de messages : 14
Inscrit le : Mer 04 Nov 2009, 18:35
|
Posté le : Jeu 05 Nov 2009, 20:47
|
|
|
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.
|
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Ven 06 Nov 2009, 7:17
|
|
|
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
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Ven 06 Nov 2009, 18:25
|
|
|
puis je ne vois pas trop l'interet d'utiliser des L, autant utiliser des 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 |
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Ven 06 Nov 2009, 18:41
|
|
|
@Rézus
Pour le texte en effet , 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 |
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Ven 06 Nov 2009, 19:34
|
|
|
Merci,je me met au travail.
|
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Dim 08 Nov 2009, 18:54
|
|
|
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ù ?
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Dim 08 Nov 2009, 22:56
|
|
|
SUPER ! 
Ça marche niquel !!!
la je suis trop fatigué mais demain je réfléchit à l'algorythme de rotation. 
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 |
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Lun 09 Nov 2009, 18:50
|
|
|
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.
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.
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Lun 09 Nov 2009, 20:08
|
|
|
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... 
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 |
 |
|
| |
Sangohan38
Autorisation : Membre
Nb de messages : 3293
Inscrit le : Sam 31 Déc 2005, 19:48
|
Posté le : Mar 10 Nov 2009, 7:13
|
|
|
Ce serais plus rapide de faire un label car en terme de vitesse, un label ralentis moins qu'un Then/End.
Sangohan38
|
 |
|
| |
dysto
Autorisation : Membre
Nb de messages : 200
Inscrit le : Mar 20 Oct 2009, 18:58
|
Posté le : Mer 11 Nov 2009, 2:14
|
|
|
??????
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Mer 11 Nov 2009, 8:17
|
|
|
Alors 
=/= 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 |
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Mer 11 Nov 2009, 21:15
|
|
|
Le problème avec cet algorithme c'est que les pièces ne font pas une rotation par exemple:
devient
,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.
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Mer 11 Nov 2009, 22:27
|
|
|
Oulah !
Ça commence à devenir compliqué !
Mais je pense que tu te rapproche de la fin 
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 |
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Jeu 12 Nov 2009, 18:31
|
|
|
Eh ! me laisse pas ! chuis atteint de flemmite aigue !!
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Jeu 12 Nov 2009, 22:07
|
|
|
bon alors demain je me remet au boulôt ! 
---------------------- 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 |
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Ven 13 Nov 2009, 16:49
|
|
|
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 
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 |
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Ven 13 Nov 2009, 19:52
|
|
|
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
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
|
 |
|
| |
Rézus
Autorisation : Membre
Nb de messages : 835
Inscrit le : Sam 20 Jui 2009, 20:35
|
Posté le : Sam 14 Nov 2009, 18:49
|
|
|
Qu'est-ce que t'en dis ?
|
 |
|
| |
WoKeRnOZ
Autorisation : Membre
Nb de messages : 57
Inscrit le : Ven 13 Nov 2009, 22:24
|
Posté le : Sam 14 Nov 2009, 19:45
|
|
|
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 :/ 
Genre Pxltest et tout, je sais meme pas c'que c'est..
Apres p'tetre que en me penchant mieux dessus... 
---------------------- Calculatrice Ti-82 stats fr(sans cable)
Et Ti-82 basique (sans cable non plus :o)
Programmeur novice à la recherche du programme parfait (h) |
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Sam 14 Nov 2009, 20:12
|
|
|
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é 
lis le chapitre 8:DESSIN de la notice 
---------------------- 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 |
 |
|
| |
dysto
Autorisation : Membre
Nb de messages : 200
Inscrit le : Mar 20 Oct 2009, 18:58
|
Posté le : Sam 14 Nov 2009, 21:09
|
|
|
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 ^_^ !
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Sam 14 Nov 2009, 22:32
|
|
|
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 
---------------------- 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 |
 |
|
| |
dysto
Autorisation : Membre
Nb de messages : 200
Inscrit le : Mar 20 Oct 2009, 18:58
|
Posté le : Sam 14 Nov 2009, 23:46
|
|
|
Oui, dans le graph, Y varie entre 0 et 62 et X entre 0 et 94.
|
 |
|
| |
sypotu
Autorisation : Membre
Nb de messages : 651
Inscrit le : Dim 13 Sep 2009, 8:27
|
Posté le : Dim 15 Nov 2009, 7:39
|
|
|
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 |
 |
|
| |
WoKeRnOZ
Autorisation : Membre
Nb de messages : 57
Inscrit le : Ven 13 Nov 2009, 22:24
|
Posté le : Dim 15 Nov 2009, 11:33
|
|
|
Aaah ok 
Merci 
EDIT : Ok pour pxl test... Mais a quoi sa sert? 
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) |
 |
|
| |
dysto
Autorisation : Membre
Nb de messages : 200
Inscrit le : Mar 20 Oct 2009, 18:58
|
Posté le : Dim 15 Nov 2009, 12:58
|
|
|
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 ^_^ !
|
 |
|
| |
WoKeRnOZ
Autorisation : Membre
Nb de messages : 57
Inscrit le : Ven 13 Nov 2009, 22:24
|
Posté le : Dim 15 Nov 2009, 13:25
|
|
|
Ah ok 
Mais pxl test est utile tout seul?
Parce qu'en l'utilisant en "combo"( ) 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 
Merci por les explications 
---------------------- Calculatrice Ti-82 stats fr(sans cable)
Et Ti-82 basique (sans cable non plus :o)
Programmeur novice à la recherche du programme parfait (h) |
 |
|
| |