Le Forum de TI-BANK.fr

Le forum de la banque de programmes pour calculatrices graphiques Texas Instruments (aide débutants, résolution problèmes...).
AccueilPortailCalendrierFAQRechercherS'enregistrerConnexion
 

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

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2, 3  Suivante
AuteurMessage
loko
Débutant
Débutant


Sexe:MasculinTaureauChèvre
Age : 17
Inscrit le : 09 Sep 2007
Messages : 11
Calculatrice : Ti 84+
Classe : 1S

MessageSujet: Jeu de Snake trop lent. [FINI TOUT EST OK]   Dim 9 Sep - 19: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:
: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 ;)


Dernière édition par le Mar 11 Sep - 19:14, édité 1 fois
Revenir en haut Aller en bas
chicu
Elite
Elite


Sexe:MasculinGémeauxCheval
Age : 18
Inscrit le : 27 Mai 2007
Messages : 206
Calculatrice : ti82 ti84+ ti89tita
Classe : TS SI


Impureté:
107/450  (107/450)
Dernière note en maths: 16.5/20

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Dim 9 Sep - 19:21

Code:
: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:
: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 :).
Revenir en haut Aller en bas
loko
Débutant
Débutant


Sexe:MasculinTaureauChèvre
Age : 17
Inscrit le : 09 Sep 2007
Messages : 11
Calculatrice : Ti 84+
Classe : 1S

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Dim 9 Sep - 19: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 ;)
Revenir en haut Aller en bas
AdRiWeB
Elite
Elite


Sexe:MasculinGémeauxSinge
Age : 16
Inscrit le : 01 Juin 2007
Messages : 949
Localisation : Sur ma chaise
Calculatrice : TI-84+, Nspire cas
Classe : Grade 12 - Senior (Lycee americain)


Impureté:
-1/450  (-1/450)
Dernière note en maths: 100 % ^^

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Lun 10 Sep - 17:51

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

LE blog des 83+ et 84+ : programmes scolaires, aides, deblocages, jeux...
Revenir en haut Aller en bas
loko
Débutant
Débutant


Sexe:MasculinTaureauChèvre
Age : 17
Inscrit le : 09 Sep 2007
Messages : 11
Calculatrice : Ti 84+
Classe : 1S

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Lun 10 Sep - 18: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
Revenir en haut Aller en bas
Ver2guerre
Légende
Légende


Sexe:MasculinBalanceChèvre
Age : 17
Inscrit le : 29 Sep 2006
Messages : 2472
Localisation : Le plus loin possible des casio
Calculatrice : TI-89 tita x2 + TI 83 Plus
Classe : MPSI


Impureté:
-1/100  (-1/100)
Dernière note en maths: Je crains plutôt la prochaine...

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Lun 10 Sep - 19: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
Revenir en haut Aller en bas
Mic
Administrateur
Administrateur


Sexe:MasculinGémeauxRat
Age : 24
Inscrit le : 07 Sep 2004
Messages : 10021
Localisation : Orléans
Calculatrice : Voyage 200 & TI-Nspire CAS
Classe : Prof de Maths


Impureté:
56/450  (56/450)
Dernière note en maths: -/20

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Lun 10 Sep - 20:33

loko, n'hésite pas à le mettre, une fois fini, sur ti-bank :
http://ti.bank.free.fr/index.php?mod=archives&ac=poster2
_________________
Responsable de TI-BANK (http://www.ti-bank.fr)

Projet 1 : How well do you know your World ? [68k] (19%)
Projet 2 : Da Vinci Flight [68k] (0.5%)
Projet 3 : Mastermind Nspire [Nspire] (80%)
Projet 4 : Ephy Nspire [Nspire] (0%)
Revenir en haut Aller en bas
loko
Débutant
Débutant


Sexe:MasculinTaureauChèvre
Age : 17
Inscrit le : 09 Sep 2007
Messages : 11
Calculatrice : Ti 84+
Classe : 1S

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Mar 11 Sep - 16:20

ver2guerre a écrit:
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.
Revenir en haut Aller en bas
loko
Débutant
Débutant


Sexe:MasculinTaureauChèvre
Age : 17
Inscrit le : 09 Sep 2007
Messages : 11
Calculatrice : Ti 84+
Classe : 1S

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Mar 11 Sep - 19:36

Voila mon nouveau code, tout marche ;)

Code:

: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,"
Revenir en haut Aller en bas
Mic
Administrateur
Administrateur


Sexe:MasculinGémeauxRat
Age : 24
Inscrit le : 07 Sep 2004
Messages : 10021
Localisation : Orléans
Calculatrice : Voyage 200 & TI-Nspire CAS
Classe : Prof de Maths


Impureté:
56/450  (56/450)
Dernière note en maths: -/20

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Mar 11 Sep - 20:42

http://ti.bank.free.fr/index.php?mod=archives&ac=poster2
_________________
Responsable de TI-BANK (http://www.ti-bank.fr)

Projet 1 : How well do you know your World ? [68k] (19%)
Projet 2 : Da Vinci Flight [68k] (0.5%)
Projet 3 : Mastermind Nspire [Nspire] (80%)
Projet 4 : Ephy Nspire [Nspire] (0%)
Revenir en haut Aller en bas
Ver2guerre
Légende
Légende


Sexe:MasculinBalanceChèvre
Age : 17
Inscrit le : 29 Sep 2006
Messages : 2472
Localisation : Le plus loin possible des casio
Calculatrice : TI-89 tita x2 + TI 83 Plus
Classe : MPSI


Impureté:
-1/100  (-1/100)
Dernière note en maths: Je crains plutôt la prochaine...

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Mar 11 Sep - 21:28

J'avoue, très classe !
Revenir en haut Aller en bas
AdRiWeB
Elite
Elite


Sexe:MasculinGémeauxSinge
Age : 16
Inscrit le : 01 Juin 2007
Messages : 949
Localisation : Sur ma chaise
Calculatrice : TI-84+, Nspire cas
Classe : Grade 12 - Senior (Lycee americain)


Impureté:
-1/450  (-1/450)
Dernière note en maths: 100 % ^^

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Mer 12 Sep - 14:41

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

LE blog des 83+ et 84+ : programmes scolaires, aides, deblocages, jeux...
Revenir en haut Aller en bas
tama
Animateur
Animateur


Sexe:MasculinLionChèvre
Age : 17
Inscrit le : 19 Déc 2005
Messages : 9488
Localisation : quelque part en France...
Calculatrice : TI-84+, TI89 tita HW3, TI89 tita HW4 (eh oui, 3 TI :#geek#:)
Classe : MPSI (Xywez : c'est bon là ? :p)


Impureté:
-9/500  (-9/500)
Dernière note en maths: 13/20

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Sam 15 Sep - 17:43

hmm encore des optimisations possibles ^^

Code:

:ClrHome
:5->A
:DelVar KDelVar Q
:5->G
:1->Z
:1->Y

:ClrAllLists
:{9,17->dim([A]
:Fill(0,[A]
:50->dim(L1
:L1->L2
:Fill(3,L1
:Fill(3,L2
:2->D
:
:While K!=105
:getkey->K
:
:If K
: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:1+L2(1->L2(1
:If D=3:L1(1)-1->L1(1
:If D=4:1+L1(1+1->L1(1
:
:If L1(1)=0 or L1(1)=9 or L2(1)=0 or L2(1)=17
:Goto 99
:If 1=[A](L1(1),L2(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 Z=L2(1
: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,"



Bon j'ai vu vite fait le code (pas de goto dans des while !!) mais il est déjà pas mal

Pour l'optimiser encore plus tu peux regarder le topic "astuces z80" en post it de ce salon programmation ^^
_________________
<embed src="http://www.mirari.fr/OVRh.swf" width="550" height="150" align="middle" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptAccess="always"></embed>
Revenir en haut Aller en bas
AdRiWeB
Elite
Elite


Sexe:MasculinGémeauxSinge
Age : 16
Inscrit le : 01 Juin 2007
Messages : 949
Localisation : Sur ma chaise
Calculatrice : TI-84+, Nspire cas
Classe : Grade 12 - Senior (Lycee americain)


Impureté:
-1/450  (-1/450)
Dernière note en maths: 100 % ^^

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Lun 17 Sep - 18:09

les disp a la fin, mets des virgules et ne saute pas de lignes, au final !
_________________

LE blog des 83+ et 84+ : programmes scolaires, aides, deblocages, jeux...
Revenir en haut Aller en bas
tama
Animateur
Animateur


Sexe:MasculinLionChèvre
Age : 17
Inscrit le : 19 Déc 2005
Messages : 9488
Localisation : quelque part en France...
Calculatrice : TI-84+, TI89 tita HW3, TI89 tita HW4 (eh oui, 3 TI :#geek#:)
Classe : MPSI (Xywez : c'est bon là ? :p)


Impureté:
-9/500  (-9/500)
Dernière note en maths: 13/20

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Lun 17 Sep - 18:10

aussi y a pas mal d'optimisations à faire là dedans ^^
_________________
<embed src="http://www.mirari.fr/OVRh.swf" width="550" height="150" align="middle" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptAccess="always"></embed>
Revenir en haut Aller en bas

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

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 3Aller à la page : 1, 2, 3  Suivante

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Forum de TI-BANK.fr :: Forum TIz80 :: Programmation-