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...).
Accueil­Portail­Calendrier­FAQ­Rechercher­S'enregistrer­Membres­Groupes­Connexion
Poster un nouveau sujet   Répondre au sujetPartager | 
 

 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  Suivant
AuteurMessage
loko
Débutant
Débutant


Masculin Age: 18
Classe: 1S
Calculatrice(s): Ti 84+
Messages: 11
Efficacité: 0
Date d'inscription: 09/09/2007

MessageSujet: Jeu de Snake trop lent. [FINI TOUT EST OK]   Dim 9 Sep - 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:
: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 - 18:14, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chicu
Elite
Elite


Masculin Age: 19
Classe: TS SI
Calculatrice(s): ti82 ti84+ ti89tita
Messages: 206
Efficacité: 0
Date d'inscription: 27/05/2007

Divers
Dernière note en maths: 16.5/20

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Dim 9 Sep - 18: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
Voir le profil de l'utilisateur http://ilovuzo.miniville.fr/
loko
Débutant
Débutant


Masculin Age: 18
Classe: 1S
Calculatrice(s): Ti 84+
Messages: 11
Efficacité: 0
Date d'inscription: 09/09/2007

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Dim 9 Sep - 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 ;)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
AdRiWeB
Légende
Légende


Masculin Age: 17
Classe: Term. S
Calculatrice(s): TI-84+, Nspire CAS, Nspire CAS+
Messages: 1203
Efficacité: 1
Localisation: Sur ma chaise
Date d'inscription: 01/06/2007

Divers
Dernière note en maths: 100 % ^^

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

sinon tu peux t'inspirer (librement ^^) de snakes déja fait ... sinon, sur une 84+, le code passe bien ! bien joué !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.adriweb.net
loko
Débutant
Débutant


Masculin Age: 18
Classe: 1S
Calculatrice(s): Ti 84+
Messages: 11
Efficacité: 0
Date d'inscription: 09/09/2007

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


Masculin Age: 18
Classe: MPSI
Calculatrice(s): TI-89 tita x2 + TI 83 Plus
Messages: 2477
Efficacité: 0
Localisation: Le plus loin possible des casio
Date d'inscription: 29/09/2006

Divers
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 - 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mic
Administrateur
Administrateur


Masculin Age: 25
Classe: Prof de Maths
Calculatrice(s): Voyage 200 & TI-Nspire CAS
Messages: 11452
Efficacité: 13
Localisation: Orléans
Date d'inscription: 07/09/2004

Divers
Dernière note en maths: -/20

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Lun 10 Sep - 19: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
Voir le profil de l'utilisateur http://www.ti-bank.fr
loko
Débutant
Débutant


Masculin Age: 18
Classe: 1S
Calculatrice(s): Ti 84+
Messages: 11
Efficacité: 0
Date d'inscription: 09/09/2007

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Mar 11 Sep - 15: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
Voir le profil de l'utilisateur
loko
Débutant
Débutant


Masculin Age: 18
Classe: 1S
Calculatrice(s): Ti 84+
Messages: 11
Efficacité: 0
Date d'inscription: 09/09/2007

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Mar 11 Sep - 18: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
Voir le profil de l'utilisateur
Mic
Administrateur
Administrateur


Masculin Age: 25
Classe: Prof de Maths
Calculatrice(s): Voyage 200 & TI-Nspire CAS
Messages: 11452
Efficacité: 13
Localisation: Orléans
Date d'inscription: 07/09/2004

Divers
Dernière note en maths: -/20

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Mar 11 Sep - 19: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
Voir le profil de l'utilisateur http://www.ti-bank.fr
Ver2guerre
Légende
Légende


Masculin Age: 18
Classe: MPSI
Calculatrice(s): TI-89 tita x2 + TI 83 Plus
Messages: 2477
Efficacité: 0
Localisation: Le plus loin possible des casio
Date d'inscription: 29/09/2006

Divers
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 - 20:28

J'avoue, très classe !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
AdRiWeB
Légende
Légende


Masculin Age: 17
Classe: Term. S
Calculatrice(s): TI-84+, Nspire CAS, Nspire CAS+
Messages: 1203
Efficacité: 1
Localisation: Sur ma chaise
Date d'inscription: 01/06/2007

Divers
Dernière note en maths: 100 % ^^

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

pas mal ! bravo !! encore plus rapide qu'avant !!
mets-le sur TI-Bank si c'est pas déja fait !!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.adriweb.net
tama
Animateur
Animateur


Masculin Age: 18
Classe: oui. (2ème année à l'Epita, sinon)
Calculatrice(s): TI-84+, TI89 tita HW3, TI89 tita HW4 (eh oui, 3 TI :#geek#:)
Messages: 10280
Efficacité: 29
Localisation: Paris ... dans un rayon de 15 km
Date d'inscription: 19/12/2005

Divers
Dernière note en maths: 13/20

MessageSujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK]   Sam 15 Sep - 16: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 ^^

_________________
Modérateur des salons z80

Lisez le Journal de tibank, y a du bon ! :)

Envie de nous voir IRL ? participez à la réunion Nord de tibank !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://tamast.actifforum.com/index.htm
AdRiWeB
Légende
Légende


Masculin Age: 17
Classe: Term. S
Calculatrice(s): TI-84+, Nspire CAS, Nspire CAS+
Messages: 1203
Efficacité: 1
Localisation: Sur ma chaise
Date d'inscription: 01/06/2007

Divers
Dernière note en maths: 100 % ^^

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

les disp a la fin, mets des virgules et ne saute pas de lignes, au final !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.adriweb.net
tama
Animateur
Animateur


Masculin Age: 18
Classe: oui. (2ème année à l'Epita, sinon)
Calculatrice(s): TI-84+, TI89 tita HW3, TI89 tita HW4 (eh oui, 3 TI :#geek#:)
Messages: 10280
Efficacité: 29
Localisation: Paris ... dans un rayon de 15 km
Date d'inscription: 19/12/2005

Divers
Dernière note en maths: 13/20

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

aussi y a pas mal d'optimisations à faire là dedans ^^

_________________
Modérateur des salons z80

Lisez le Journal de tibank, y a du bon ! :)

Envie de nous voir IRL ? participez à la réunion Nord de tibank !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://tamast.actifforum.com/index.htm
 

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  Suivant

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