Poster un nouveau sujet Poster une réponse <<   Page: , , 3,      >>
Snake, by Polymorph
Auteur Message
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 03 Jan 2012, 14:12   Citer 

Je doûte que le screen soit à vitesse réelle car je le trouve un peu lent.
Ou bien le rendu est moins bien que mon espérance.

Indique que le "1->N" utilise la variable finance en dehors de ton screen : j'ai posté une question là dessus avant d'éditer car je n'avais pas eu la patience de le regarder jusqu'au bout. Et je ne serai pas forcément le seul.

Je ne vois pas de procédure de chargement. Or j'immagine que le 1->N sert à cela.
Il vaut mieux se passer de variable finance et utiliser la liste pour cela aussi.

Ce serait bien d'utiliser une liste personnalisées pour stocker les données.
Pour cela dimensionne la liste au début du programme puis substitue la à la liste3 dans le code.
8->dim(lSNK
Pour la liste SNK. "l" désigne la dernière option du menu liste>ops.

Je suis adepte de l'économie de mémoire alors je n'aime pas trop les menus graphiques.
Et je déteste l'animation avec une jauge qui ralentit le programme innutilement.
(je supportais les menus de la v1.0 mais là c'est trop pour moi)

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mar 03 Jan 2012, 19:40   Citer 

Navré, c'est vraiment pas destiné au programmer qui sent toute la mémoire perdu dans la pratique, mais à l'utilisateur lambda, qui trouve ça "Tr0Kl4sS" minied.gif


Citer
Je doûte que le screen soit à vitesse réelle car je le trouve un peu lent.



Erf, là désolé, c'est pas tout à fait à vitesse réelle, mais presque...


Citer
Je ne vois pas de procédure de chargement. Or j'immagine que le 1->N sert à cela.
Il vaut mieux se passer de variable finance et utiliser la liste pour cela aussi.



Je te renvoie à la partie du code s'occupant de cela


Code
If I=33:Then
8=>dim(L3
W=>L3(1):Z=>L3(2
U=>L3(3):V=>L3(4
L=>L3(5):N=>L3(6
D=>L3(7):B=>L3(8
1=>N



Je voulais au début faire une condition If dim(L3), mais ça marchait pas, alors j'ai essayé d'utiliser un boléen dont la valeur n'était jamais modifiée pour ça.
Si tu as une meilleure solution, je suis tout oui (parce que bien sûr, je la supprime la liste quand je reprend la sauvegarde pour prendre moins d'espace)

EDIT :
Citer
l ne reconnais pas le N que l'on trouve dans le menu variable, dans finance, et le remplace par un double S


J'avais déja précisé ^^.

----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 03 Jan 2012, 20:30   Citer 

Pour garrentir l'existance d'une liste dont on connait la taille, le plus simple est de faire:
longueur de la liste -> dim(nom de la liste)

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 03 Jan 2012, 21:50   Citer 

Je voulais demander de préciser hors du screen QUEL N est une variable de finance. Car ta description désigne N sans précision. (un N ? deux N ? tous les N ?)
Seul le screen m'a permi d'être sûr.

Tu sauvegardes des variables dans la liste avec la zone que tu cites mais il n'y a aucune procédure de chargement de cette liste dans les variables.
L3(1)->W:L3(2)->Z etc

Pour tester si une partie est déjà sauvegadée, il vaut mieux (à mon avis) utiliser une variable stockée dans la liste L3 et dont l'état 0 signifie "absence de sauvegarde".
En effet l'usage de X->dim(lSNK) remplit lSNK de zéros quand lSNK n'existait pas.
Si tu veux vraiment effacer la liste et effectuer des tests dessus, il faudra l'initialiser systématiquement au début et la supprimmer à la fin quand tu ne veux pas sauvegarder.
L'idée classique est d'écrire 9->dim(L3) au début.


Code
9->dim(lSNK
// menu de démarrage
If lSNK(1
prgmCHARGERPARTIE
// boucle de jeu
// pause et sauvegarde
{1,W,Z,U,V,L,N,D,B->lSNK  // cette ligne n'a pas besoin que lSNK existe avant
// fin du prog

// si on sélectionne dans un menu "quitter sans sauver" ou "effacer la sauvegarde" alors on écrit 0->lSNK(1)
La suppression sera assurée ci-dessous.

If not(lSNK(1
DelVar lSNK


ps : ma critique sur le graphique m'est très personnelle. Il en faut pour tous les goûts.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mar 03 Jan 2012, 23:08   Citer 

Ah, pardon, le chargement est dans le selector ^^

EDIT : merci de la remarque, il est dans le selector de ma calculatrice, mais pas celui du programme que je vous ai fait suivre, merci de la remarque!


Code
//tout à la fin du selector
If N:then
L3(1=>W
L3(2=>Z
L3(3=>U
L3(4=>V
L3(5=>L
L3(6=>N
L3(7=>D
L3(8=>B


Je fais faire ce que vous dites, mettre un liste à 9 entrées ou la première sera un boléen, c'est une très bonne idée ^^. Mais je m'occupe de ça plus tard, là il est l'heure d'aller dormir crazy.gif

----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mer 04 Jan 2012, 23:01   Citer 

Petite mise à jour complète de mon snake, voici la 1.7 !

- Dorénavant, les version sont dans le programme Snake, donc vous pouvez considérer que le Selector est en version finale.
- Suite à un codage d'un deuxième snake pour essayer une technique différente (je donne plus de détails si ça intéresse quelqu'un) j'ai remis un peu en forme mon code, et il est plus rapide maintenant !
- Modification de la sauvegarde à l'aide du boléen dans la liste.

Je suis en attente sur le réglage de mon tout dernier bug : lorsque vous mangez un point et que les coordonnées du nouveau point se trouvent éxactement à l'emplacement de l'ancien, il n'est pas mangé une nouvelle fois et vous le traversez. Le point peut également apparaître sur la dernière case de votre queue.
(N.B. : Ces bugs ont chacun une probabilité d'1/522, si mes calculs sont justes, mais j'aimerai les régler quand même ^^)

http://www.box.com/s/jz1euxvn5eha5lkd11xm


Code
//SNAKE
StoreGDB 1
0üXmin:94üXmax
ú62üYmin:0üYmax
FnOff
AxesOff
ClrDraw
RecallPic 0
Text(30,17,"JOUER
Text(30,46,"QUITTER
Text(50,22,"BY POLYMORPH
Text(40,35,"V 1.7
prgmSELECTOR
If Lƒ(1):Then
ClrDraw
RecallPic 2
69!:69!:69!:69!
Goto J0:End
DelVar L
Lbl D
L+1üL
ClrDraw
prgmZDECORS
Lbl A
0üA:4üD:1üB:5üN
48üW:ú30üZ
ClrList L,L‚
Repeat not(pxl-Test(úV,U
3randInt(1,29üU
ú3randInt(1,18üV
End
Lbl J0
Pt-On(U,V,2
Pt-Off(U,V,3
Pt-On(U,V
Lbl J
Repeat A=105
Repeat A
WüL(B
ZüL‚(B
Pt-On(W,Z,2
B+1üB
If B>N
Pt-Off(L(B-N),L‚(B-N),2
W-3(D=1)+3(D=3üW
Z-3(D=4)+3(D=2üZ
If W=U and Z=V
Then:Pxl-Off(úV,U
Repeat not(pxl-Test(úV,U) or pxl-Test(1-V,U
3randInt(1,18üU
ú3randInt(1,17)üV
End
N+1üN
If N=20:Goto D
Pt-On(U,V,2
Pt-Off(U,V,3
Pt-On(U,V
End
If pxl-Test(úZ-(D=4)+(D=2),W+(D=1)-(D=3
Goto 0
getKeyüA
End
If Aù24 and A÷26
A-23üD
If A=34:4üD
End
StorePic 2
ClrDraw
RecallPic 1
Text(10,39,"PAUSE
Text(25,31,"REPRENDRE
Text(33,36,"SAUVER
Text(41,35,"QUITTER
25üI
Text(I,26,">
Repeat K=105
getKeyüK
If K=25 and I>25
Then:Text(I,26,"   "
I-8üI
Text(I,26,">
End
If K=34 and I<41
Then:Text(I,26,"   "
I+8üI
Text(I,26,">
End
End
ClrDraw
If I=25:Then
RecallPic 2
DelVar Pic2
69!:69!:69!
Goto J:End
If I=33:Then
9üdim(Lƒ
{1,W,Z,U,V,L,N,D,Bü
Text(28,25,"SAUVERGARDE
For(F,23,66
For(G,28,34
Pxl-Change(G,F
End
End
69!:69!
Text(36,29,"TERMINEE!
For(F,1,6
69!:End
ClrHome
ClrDraw
Output(1,1,"
Stop:End
If I=41:Then
DelVar Pic2
ClrHome
Output(1,1,"
RecallGDB 1
ClrList L,L‚
Stop:End
Lbl 0
For(F,31,0,ú1
Horizontal ú31-F
Horizontal F-31
End
ClrDraw:ClrHome
Output(3,4,"GAME  OVER
Output(6,5,"SCORE
Output(6,11,N-20+15L
ClrList L,L‚
RecallGDB 1




Code
//SELECTOR
12üC
Repeat K=105
Line(C,ú28,C+30,ú28
Line(C+30,ú28,C+30,ú37
Line(C+30,ú37,C,ú37
Line(C,ú37,C,ú28
getKeyüK
If (C<32 and K=26) or (C>12 and K=24)
Then
Line(C,ú28,C+30,ú28,0
Line(C+30,ú28,C+30,ú37,0
Line(C+30,ú37,C,ú37,0
Line(C,ú37,C,ú28,0
C+32(K=26)-32(K=24)üC
End
End
If C=12:Return
If C=44
Then
ClrDraw
ClrHome
Output(1,1,"
Stop:End
If Lƒ(1):Then
Lƒ(2üW
Lƒ(3üZ
Lƒ(4üU
Lƒ(5üV
Lƒ(6üL
Lƒ(7üN
Lƒ(8üD
Lƒ(9üB
{0ü




Code
//ZDECORS
Line(3,0,93,0
Line(4,ú1,92,ú1
Line(3,0,3,ú60
Line(4,ú1,4,ú59
Line(93,0,93,ú60
Line(92,ú1,92,ú59
Line(3,ú60,93,ú60
Line(4,ú59,92,ú59
If Lù2:Then
Line(17,ú11,79,ú11
Line(17,ú12,79,ú12
Line(17,ú13,79,ú13
Line(17,ú47,79,ú47
Line(17,ú48,79,ú48
Line(17,ú49,79,ú49
End
If Lù3:Then
Line(38,ú23,38,ú37
Line(39,ú23,39,ú37
Line(40,ú23,40,ú37
Line(56,ú23,56,ú37
Line(57,ú23,57,ú37
Line(58,ú23,58,ú37
End
If Lù4:Then
Line(14,ú25,14,ú5
Line(15,ú25,15,ú5
Line(16,ú25,16,ú5
Line(14,ú35,14,ú55
Line(15,ú35,15,ú55
Line(16,ú35,16,ú55
Line(80,ú25,80,ú5
Line(81,ú25,81,ú5
Line(82,ú25,82,ú5
Line(80,ú35,80,ú55
Line(81,ú35,81,ú55
Line(82,ú35,82,ú55
End
If Lù5:Then
Line(17,ú35,79,ú35
Line(17,ú36,79,ú36
Line(17,ú37,79,ú37
Line(17,ú23,79,ú23
Line(17,ú24,79,ú24
Line(17,ú25,79,ú25
Pt-Off(48,ú36,2
Pxl-Off(36,48
Pt-Off(48,ú24,2
Pxl-Off(24,48
Pt-Off(27,ú36,2
Pxl-Off(36,27
Pt-Off(27,ú24,2
Pxl-Off(24,27
Pt-Off(69,ú36,2
Pxl-Off(36,69
Pt-Off(69,ú24,2
Pxl-Off(24,69



Le tout prends 2ko de programme, + 1,5ko en image.

Preview:


----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 05 Jan 2012, 0:16   Citer 

Pour le rendre encore plus rapide il est possible d'extraire la boucle qui permet de jouer dans un programme à part. Selon ce qu'on extrait le résultat peut être grandement amélioré mais parfois dégradé.

Pour éviter que le point apparaisse n'importe-où, il est préférable d'effectuer un pixel-test à l'emplacement aléatoire, ce que tu as déjà fait il me semble.
Ajoûte un second pixel test ou modifie le premier décalé d'un ou deux pixels pour être sûr de détecter aussi bien les obstacles que le serpent.

La dernière nuance que j'ai en tête est qu'utiliser une liste personnalisée au lieu de L3 évite le risque que la liste L3 soit modifiée par un autre programme ou des calculs.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Jeu 05 Jan 2012, 17:30   Citer 

Sortir la boucle du programme, j'ai essayé, je n'ai pas vu de différence °°


Citer

Pour éviter que le point apparaisse n'importe-où, il est préférable d'effectuer un pixel-test à l'emplacement aléatoire, ce que tu as déjà fait il me semble.
Ajoûte un second pixel test ou modifie le premier décalé d'un ou deux pixels pour être sûr de détecter aussi bien les obstacles que le serpent.



J'ai déjà deux pixel-test ! Il m'en faudrait 4 pour éviter qu'il réapparaisse à l'exact même endroit :/ Mon problème, c'est que le déplacement se fait avant le test... est-ce que si je place le test avant, ça sera réglé?


Citer

La dernière nuance que j'ai en tête est qu'utiliser une liste personnalisée au lieu de L3 évite le risque que la liste L3 soit modifiée par un autre programme ou des calculs.


Ouais, je vais le faire ça. C'est juste que pour le moment, j'avais commencé un programme Poker ou je m'étais amusé à faire que des listes custom, et du coup, ma calto est bourrée de listes xD Mais je vais le faire pour le programme ici ^^.

----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 05 Jan 2012, 18:33   Citer 

Le programme ne s'accélère pas par extraction : c'est très bon signe.
Cela signifie principalement qu'aucun Goto ni le poids ne ralentit radicalement le programme.

Je doûte de la signification de ceci. Je pense tout d'abord à une faute.
Code
Repeat A=105
Repeat A



Je vais potasser tes pixel-test. Mais :

Code
***  * *   ***
***   *    * *
***  * *   ***
mur pomme serpent

Je pense qu'il suffirait de tester les pixels des coins pour détecter n'importe quoi comme case invalide pour la nouvelle pomme. (c'est une des deux solutions que je proposais)

Si le problème du test vient de l'ordre des effacements dans la boucle, il serait effectivement utile de changer cet ordre.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Jeu 05 Jan 2012, 21:02   Citer 


Citer
Le programme ne s'accélère pas par extraction : c'est très bon signe.


Ouais, enfin ça signifie que j'ai atteint mon maximum quoi ^^.
Le faire accélère peut-être un micro chouilla, mais ça pose tous les problèmes d'étiquette liés aux goto...


Citer

Je doûte de la signification de ceci. Je pense tout d'abord à une faute.

Code
Repeat A=105
Repeat A



Pas du tout!
Le premier repeat englobe la boucle complète de jeu. Le second, c'est mon astuce perso pour l'accélérer! ^^ C'est le code "ligne droite", celui que tu répète tant qu'aucune touche n'est pressée, pour éviter de faire le test de direction à chaque tour. Ainsi, après le premier End, tu as les test de direction, suivis du second End. Mon code m'avait paru plutôt bien écrit, et pour ma part, je le trouve très compréhensible! minied.gif


Citer

Je pense qu'il suffirait de tester les pixels des coins pour détecter n'importe quoi comme case invalide pour la nouvelle pomme.


Pas bête du tout. Ainsi je fais rentrer un seul test au lieu de deux à quatre ^^. Mais ça ne règle toujours pas mon problème, qui ne vient pas du test, mais de l'ordre (le point n'apparait que tout devant ou tout derrière, jamais au milieu du snake [ce qui signifie que mon pixel-test est juste]. Tout derrière, il est partiellement effacé car le snake s'agrandit. Devant, à cause de l'ordre =) Je vais essayer de changer l'ordre pour voir si ça règle tout ça!

EDIT : changer l'ordre a permi d'éviter le bug d'arrivage devant. Et j'ai eu une vision pendant que je testais, car le bug à l'arrière est resté.
En fait, le point apparaît avant le dernier maillon du serpent, mais lorsqu'on mange le point, l'écart entre le point à tracer et celui à s'effacer s'étend d'un dans la liste, et donc on efface LE MÊME POINT 2 FOIS DE SUITE !
Il faudrait que j'enlève cette commande... des idées?

----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Ven 13 Jan 2012, 22:11   Citer 

Bzzzzt!

Up, voici la v1.9!


Code
StoreGDB 1
:0&#8594;Xmin:94&#8594;Xmax
:&#8254;62&#8594;Ymin:0&#8594;Ymax
:FnOff
:AxesOff
:ClrDraw
:RecallPic 0
:Text(30,17,"JOUER
:Text(30,46,"QUITTER
:Text(50,22,"BY POLYMORPH
:Text(40,35,"V 1.9
:prgmSELECTOR
:If L3(1):Then
:¦ ClrDraw
:¦ RecallPic 2
:¦ 69!:69!:69!:69!
:¦ Goto J0:End
:DelVar L
:Lbl D
:L+1&#8594;L
:ClrDraw
:prgmZDECORS
:Lbl A
:DelVar A1&#8594;B:5&#8594;N
:&#8254;1&#8594;Q:0&#8594;R
:48&#8594;W:&#8254;30&#8594;Z
:ClrListL1,L2
:Repeat not(pxl-Test(&#8254;V,U
:¦ 3randInt(1,29&#8594;U
:¦ &#8254;3randInt(1,18&#8594;V
:End
:Lbl J0
:Pt-On(U,V,2
:Pt-Off(U,V,3
:Pt-On(U,V
:Lbl J
:Repeat A=105
:¦ Repeat A
:¦ ¦ W&#8594;L1(B
:¦ ¦ Z&#8594;L2(B
:¦ ¦ If W=U and Z=V
:¦ ¦ Then:Pxl-Off(&#8254;V,U
:¦ ¦ ¦ Repeat not(pxl-Test(1-V,1+U
:¦ ¦ ¦ ¦ 3randInt(1,18&#8594;U
:¦ ¦ ¦ ¦ &#8254;3randInt(1,17&#8594;V
:¦ ¦ ¦ End
:¦ ¦ ¦ N+1&#8594;N
:¦ ¦ ¦ If N=20:Goto D
:¦ ¦ ¦ Pt-On(U,V,2
:¦ ¦ ¦ Pt-Off(U,V,3
:¦ ¦ ¦ Pt-On(U,V
:¦ ¦ End
:¦ ¦ Pt-On(W,Z,2
:¦ ¦ B+1&#8594;B
:¦ ¦ If B>N
:¦ ¦ Pt-Off(L1(B-N),L2(B-N),2
:¦ ¦ W+3R&#8594;W
:¦ ¦ Z+3Q&#8594;Z
:¦ ¦ If pxl-Test(Q-Z,W-R
:¦ ¦ Goto 0
:¦ ¦ getKey&#8594;A
:¦ End
:¦ If A&#8805;24 and A&#8804;26 or A=34
:¦ Then
:¦ ¦ (A=25)-(A=34&#8594;Q
:¦ ¦ (A=26)-(A=24&#8594;R
:¦ End:End
:StorePic 2
:ClrDraw
:RecallPic 1
:Text(10,39,"PAUSE
:Text(25,31,"REPRENDRE
:Text(33,36,"SAUVER
:Text(41,35,"QUITTER
:25&#8594;I
:Text(I,26,">
:Repeat K=105
:¦ getKey&#8594;K
:¦ If K=25 and I>25
:¦ Then:Text(I,26,"   "
:¦ ¦ I-8&#8594;I
:¦ ¦ Text(I,26,">
:¦ End
:¦ If K=34 and I<41
:¦ Then:Text(I,26,"   "
:¦ ¦ I+8&#8594;I
:¦ ¦ Text(I,26,">
:¦ End
:End
:ClrDraw
:If I=25:Then
:¦ RecallPic 2
:¦ DelVar Pic2
:¦ 69!:69!:69!
:¦ Goto J:End
:If I=33:Then
:¦ 9&#8594;dim(L3
:¦ {1,W,Z,U,V,L,N,D,B&#8594;L3
:¦ Text(28,25,"SAUVERGARDE
:¦ For(F,23,66
:¦ ¦ For(G,28,34
:¦ ¦ ¦ Pxl-Change(G,F
:¦ ¦ End
:¦ End
:¦ 69!:69!
:¦ Text(36,29,"TERMINEE!
:¦ For(F,1,6
:¦ ¦ 69!:End
:¦ ClrHome
:¦ ClrDraw
:¦ Output(1,1,"
:¦ Stop:End
:If I=41:Then
:¦ DelVar Pic2
:¦ ClrHome
:¦ Output(1,1,"
:¦ RecallGDB 1
:¦ ClrListL1,L2
:¦ Stop:End
:Lbl 0
:For(F,31,0,&#8254;1
:¦ Horizontal &#8254;31-F
:¦ Horizontal F-31
:End
:ClrDraw:ClrHome
:Output(3,4,"GAME  OVER
:Output(6,5,"SCORE
:Output(6,11,N-20+15L
:ClrListL1,L2
:RecallGDB 1



Le lien est toujours dans ma sign! (N'hésitez pas à tester et à poster vos meilleurs scores ^^ (perso, le mien est 75, mais pas avec cette version xD)

Note : Vous aurez toujours besoin de SELECTOR et de ZDECORS (dans ma sign également)

Preview : à gauche la 1.9, à droite la 1.0 (pour comparer)


----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Sam 14 Jan 2012, 9:25   Citer 

ça sent le code de TI-program editor ça winkle.gif

Y a t'il moyen que tu traduises ceci en français sans caractères spéciaux ? winkle.gif

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Sam 14 Jan 2012, 11:04   Citer 

Naturellement ^^ Mais si c'est pour recopier à la main, ça va être long crazy.gif

J'essaie de te faire ça ce week-end.

----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Sam 14 Jan 2012, 14:38   Citer 

Sinon, si tu veut ne pas avoir à tout remplacer à la main, utilise l'éditeur de programmes de http://www.cemetech.net/projects/basicelite/sourcecoder2.php : elle permet ne n'avoir que très peu de remplacements manuels à faire.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Sam 14 Jan 2012, 16:13   Citer 

Effectivement, merci beaucoup pour ce lien qui m'économisera du boulot !


Code
:StoreGDB 1
:0->Xmin:94->Xmax
:-62->Ymin:0->Ymax
:FnOff
:AxesOff
:ClrDraw
:RecallPic 0
:Text(30,17,"JOUER
:Text(30,46,"QUITTER
:Text(50,22,"BY POLYMORPH
:Text(40,35,"V 1.9
:prgmSELECTOR
:If L3(1):Then
:ClrDraw
:RecallPic 2
:69!:69!:69!:69!
:Goto J0:End
:DelVar L
:Lbl D
:L+1->L
:ClrDraw
:prgmZDECORS
:Lbl A
:DelVar A1->B:5->N
:-1->Q:0->R
:48->W:-30->Z
:ClrListL1,L2
:Repeat not(pxl-Test(-V,U
:3randInt(1,29->U
:-3randInt(1,18->V
:End
:Lbl J0
:Pt-On(U,V,2
:Pt-Off(U,V,3
:Pt-On(U,V
:Lbl J
:Repeat A=105
:Repeat A
:W->L1(B
:Z->L2(B
:If W=U and Z=V
:Then:Pxl-Off(-V,U
:Repeat not(pxl-Test(1-V,1+U
:3randInt(1,18->U
:-3randInt(1,17->V
:End
:N+1->N
:If N=20:Goto D
:Pt-On(U,V,2
:Pt-Off(U,V,3
:Pt-On(U,V
:End
:Pt-On(W,Z,2
:B+1->B
:If B>N
:Pt-Off(L1(B-N),L2(B-N),2
:W+3R->W
:Z+3Q->Z
:If pxl-Test(Q-Z,W-R
:Goto 0
:getKey->A
:End
:If A=<24 and A>=26 or A=34
:Then
:(A=25)-(A=34->Q
:(A=26)-(A=24->R
:End:End
:StorePic 2
:ClrDraw
:RecallPic 1
:Text(10,39,"PAUSE
:Text(25,31,"REPRENDRE
:Text(33,36,"SAUVER
:Text(41,35,"QUITTER
:25->I
:Text(I,26,">
:Repeat K=105
:getKey->K
:If K=25 and I>25
:Then:Text(I,26,"   "
:I-8->I
:Text(I,26,">
:End
:If K=34 and I<41
:Then:Text(I,26,"   "
:I+8->I
:Text(I,26,">
:End
:End
:ClrDraw
:If I=25:Then
:RecallPic 2
:DelVar Pic2
:69!:69!:69!
:Goto J:End
:If I=33:Then
:9->dim(L3
:{1,W,Z,U,V,L,N,D,B->L3
:Text(28,25,"SAUVERGARDE
:For(F,23,66
:For(G,28,34
:Pxl-Change(G,F
:End
:End
:69!:69!
:Text(36,29,"TERMINEE!
:For(F,1,6
:69!:End
:ClrHome
:ClrDraw
:Output(1,1,"
:Stop:End
:If I=41:Then
:DelVar Pic2
:ClrHome
:Output(1,1,"
:RecallGDB 1
:ClrListL1,L2
:Stop:End
:Lbl 0
:For(F,31,0,-1
:Horizontal -31-F
:Horizontal F-31
:End
:ClrDraw:ClrHome
:Output(3,4,"GAME  OVER
:Output(6,5,"SCORE
:Output(6,11,N-20+15L
:ClrListL1,L2
:RecallGDB 1



----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
Arelthas
Invité
Posté le : Mar 24 Jan 2012, 17:16   Citer 

bonjour c je voulais te demander quand j'allume le jeu après que je clique sur jouer il me met ERR: DIM INVALIDE et quand je fais voir il me montre L3(2->W alors est'ce que tu sais ce qu'il se passe!! ahh.gif
sinon d’après ce que j'en ai vu il a l'air bien ce snake.


P.S: g la version 2.2.83 de ton snake( donc oui je l'ai télécharger) et j'ai une TI-83(c peut-être pour sa que sa ne marche pas).

Aussi, désolé pour les fautes d'orthographes^^

  Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mar 24 Jan 2012, 20:58   Citer 

J'ai trouvé le bug, mais malheureusement, je n'ai aucune idée comment le réparrer (pour ça il te faudra attendre une réponse de polymorph (n'hésite pas a posté ta question aussi sur le sujt de Espace-TI vue que c'est de là que vient la version en question)). Sinon, le bug vient du fait que le programme n'innitialise pas la liste 3 avant de chercher à en extraire le 2nd terme dans le sous programme sélector.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 121
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mar 24 Jan 2012, 23:25   Citer 

tape {0}->L3 dans ton écran principal et ton problème sera réglé à tout jamais !

----------------------

Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.


Polymorph, 23/11/2011
Snake!
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 24 Jan 2012, 23:51   Citer 

Ceci n'est pas une bonne solution car il plante sur la ligne L3(2->W.
Or ta solution donne une dimmension 1.

9->dim(L3
au début du programme permettrait d'éviter ce problème pour tous les nouveaux joueurs.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Mer 25 Jan 2012, 13:47   Citer 

Moi j'ai une question ^_^

A quoi ça sert de faire deux routines si elles n'interviennent qu'une fois chacun dans le programme ?

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse <<   Page: , , 3,      >>





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