π
<-

Jeu de Snake trop lent. [FINI TOUT EST OK]

Jeu de Snake trop lent. [FINI TOUT EST OK]

Unread postby loko » 09 Sep 2007, 18:08

Bonjour a tous, j'ai crée un petit jeu de snake, mais apres avoir créé la base du jeu je me suis rendu compte que ça ramait pas mal si on allait au dela de 8 parties pour mon serpent.
Voici ma source, j'aimerais savoir si on pouvais faire la meme chose avec moins de code, ou avec des fonctions plus rapides a lire pour la calculatrice.

Code: Select all
:ClrHome
:5-A  // Taille du serpent
:ClrAllLists
:20-dim(L1
:20-dim(L2
:Fill(3,L1
:Fill(3,L2
:2-D
:While K!=105
:getKey-K
:If K!=0
:Then
:If K=24 and D!=2:1-D //Gauche
:If K=26 and D!=1:2-D //Droite
:If K=25 and D!=4:3-D //Haut
:If K=34 and D!=3:4-D //Bas
:End
:If D=1:L2(1)-1-L2(1) //Changement de
:If D=2:L2(1)+1-L2(1) //coordonée en
:If D=3:L1(1)-1-L1(1) //fonction de
:If D=4:L1(1)+1-L1(1) //D
:For(G,A,2,-1
:L1(G-1)-L1(G) // on transforme les coordonnées de
:L2(G-1)-L2(G) // la 1ere partie en 2eme partie ...
:End
:For(I,1,A             
:Output(L1(I),L2(I),"*"  // on affiche.
:If I=A:Output(L1(I),L2(I)," "
:End
:End
:ClrAllLists



On m'a conseillé de ne transformer que les coordonées de la premiere et derniere parties a chaque fois, mais je ne vois vraiment pas comment faire. Merci a tous ;)
User avatar
loko
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 4%
 
Posts: 11
Joined: 09 Sep 2007, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1S

Re: Jeu de Snake trop lent. [FINI TOUT EST OK]

Unread postby chicu » 09 Sep 2007, 18:21

Code: Select all
:If K!=0
:Then
:If K=24 and D!=2:1-D //Gauche
:If K=26 and D!=1:2-D //Droite
:If K=25 and D!=4:3-D //Haut
:If K=34 and D!=3:4-D //Bas
:End
:If D=1:L2(1)-1-L2(1) //Changement de
:If D=2:L2(1)+1-L2(1) //coordonée en
:If D=3:L1(1)-1-L1(1) //fonction de
:If D=4:L1(1)+1-L1(1) //D


Moi j'aurais plutôt mis :

Code: Select all
:If K=24 and D!=2:L2(1)-1-L2(1)
:If K=26 and D!=1:L2(1)+1-L2(1)
:If K=25 and D!=4:L1(1)-1-L1(1)
:If K=34 and D!=3:4-L1(1)+1-L1(1)


Le !K=0 est inutile car si K n'est pas égal à 24 ou autre il fera rien.
Et puis séparé entre l'identification de la touche et l'ajustement des coordonnées ça ne sert pas à grand chose à mon avis :)
Sinon je ne comprend pas ta démarche de changer les coordonnées entre chaque parties à la limite tu gardes L1(1 à 5) et pareil pour L2, je ne comprend pas pourquoi tu veux le faire grimper vers l'avant :).
User avatar
chicu
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 85.9%
 
Posts: 206
Joined: 27 May 2007, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: TS SI

Re: Jeu de Snake trop lent. [FINI TOUT EST OK]

Unread postby loko » 09 Sep 2007, 18:51

Il y a une probleme avec ton code: si tu dit qu'il ne doit avancer que si K=24 et D!=2, il n'avancera pas si tu n'appuie sur aucune touche or le snake ne s'arrete jamais normalement ;)

Mon if k!=0 sert a ne pas reverifier si k a une valeur alors que l'utilisateur n'a pas pressé de touches, c'est pour gagner du temps ;)
User avatar
loko
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 4%
 
Posts: 11
Joined: 09 Sep 2007, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1S

Re: Jeu de Snake trop lent. [FINI TOUT EST OK]

Unread postby Adriweb » 10 Sep 2007, 16:51

sinon tu peux t'inspirer (librement ^^) de snakes déja fait ... sinon, sur une 84+, le code passe bien ! bien joué !

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14840
Images: 1133
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Jeu de Snake trop lent. [FINI TOUT EST OK]

Unread postby loko » 10 Sep 2007, 17:51

Heu merci mais je demandais de l'aide ^^'
J'ai reussit a le faire plus rapide et j'ai trouvé coment l'ameliorer encore ;) (niveau vitesse) je vous posterais la code optimisé puis le code avec les objectifs a manger plus tard ;), si vous avez des idées pour gagner de la vitesse je suis ouvert. Merci
User avatar
loko
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 4%
 
Posts: 11
Joined: 09 Sep 2007, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1S

Re: Jeu de Snake trop lent. [FINI TOUT EST OK]

Unread postby Ver2guerre » 10 Sep 2007, 18:05

Hum, moi, j'ai tenté de programmer un snake sur 68k, mais je n'ai pas réussi à l'optimiser assez pour dépasser pèpère les 15 morceaux ... (j'avais rajouté les bonus) ...

Donc je pense qu'en ti-basic, bof bof, pas trop possible. Mais bon, tu peux quand même essayer
User avatar
Ver2guerre
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 26%
 
Posts: 2473
Joined: 29 Sep 2006, 00:00
Location: Le plus loin possible des casio
Gender: Male
Calculator(s):
MyCalcs profile
Class: boup

Re: Jeu de Snake trop lent. [FINI TOUT EST OK]

Unread postby loko » 11 Sep 2007, 15:20

ver2guerre wrote:Hum, moi, j'ai tenté de programmer un snake sur 68k, mais je n'ai pas réussi à l'optimiser assez pour dépasser pèpère les 15 morceaux ... (j'avais rajouté les bonus) ...

Donc je pense qu'en ti-basic, bof bof, pas trop possible. Mais bon, tu peux quand même essayer


J'ai trouvé un moyen de mettre autant de morceaux que tu veux sans changer la vitesse ;) Je te poste le code demain et des que je retrouve mon cable je met la premiere version.
User avatar
loko
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 4%
 
Posts: 11
Joined: 09 Sep 2007, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1S

Re: Jeu de Snake trop lent. [FINI TOUT EST OK]

Unread postby loko » 11 Sep 2007, 18:36

Voila mon nouveau code, tout marche ;)

Code: Select all
:ClrHome
:5-A:0-k
:A-G:0-Q
:1-Z:1-Y
:ClrAllLists
:{9,17}-dim([A]
:Fill(0,[A]
:50-dim(L1
:50-dim(L2
:Fill(3,L1
:Fill(3,L2
:2-D
:
:While K!=105
:getkey-K
:
:If K!=0
:Then
:If K=24 and D!=2:1-D
:If K=26 and D!=1:2-D
:If K=25 and D!=4:3-D
:If K=34 and D!=3:4-D
:End
:
:If D=1:L2(1)-1-L2(1)
:If D=2:L2(1)+1-L2(1)
:If D=3:L1(1)-1-L1(1)
:If D=4:L1(1)+1-L1(1)
:
:If L1(1)=0 or L1(1)=9 or L2(1)=0 or L2(1)=17:Goto 99
:If [A](L1(1),L2(1))=1:Goto 99
:1-[A](L1(1),L2(1))
:
:If Q!=1
:Then
:Randint(2,15-Z
:Randint(2,7-Y
:1-Q
:If [A](Y,Z)=1:0-Q
:If Q=1:Output(Y,Z,"X"
:End
:
:If L1(1)=Y and L2(1)=Z
:Then
:A+1-A
:0-Q
:End
:
:L1(1)-L1(G)
:L2(1)-L2(G)
:G-1-G
:Output(L1(G+1),L2(G+1),"*
:Output(L1(G),L2(G)," "
:0-[A](L1(G),L2(G))
:
:If G=1
:Then
:Output(L1(A),L2(A)," "
:0-[A](L1(A),L2(A))
:Output(L1(G),L2(G),"*
:A-G
:End
:
:End
:
:Lbl 99
:
:ClrAllLists
:{1,1}-dim([A]
:Disp "PERDU
:Pause
:ClrHome
:Disp "
:Disp "SCORE
:Disp A
:Disp "
:Disp "
:Disp "CREATED BY LOKO
:Pause
:ClrHome
:Output(1,1,"
User avatar
loko
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 4%
 
Posts: 11
Joined: 09 Sep 2007, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1S

Re: Jeu de Snake trop lent. [FINI TOUT EST OK]

Unread postby Ver2guerre » 11 Sep 2007, 20:28

J'avoue, très classe !
User avatar
Ver2guerre
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 26%
 
Posts: 2473
Joined: 29 Sep 2006, 00:00
Location: Le plus loin possible des casio
Gender: Male
Calculator(s):
MyCalcs profile
Class: boup

Re: Jeu de Snake trop lent. [FINI TOUT EST OK]

Unread postby Adriweb » 12 Sep 2007, 13:41

pas mal ! bravo !! encore plus rapide qu'avant !!
mets-le sur TI-Bank si c'est pas déja fait !!

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14840
Images: 1133
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Next

Return to TI-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 5 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2674 utilisateurs:
>2631 invités
>37 membres
>6 robots
Record simultané (sur 6 mois):
7582 utilisateurs (le 25/06/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)