| | Jeu de Snake trop lent. [FINI TOUT EST OK] | |
|
|
| Auteur | Message |
|---|
loko Débutant

Age: 18 Classe: 1S Calculatrice(s): Ti 84+ Messages: 11 Efficacité: 0 Date d'inscription: 09/09/2007
 | Sujet: 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 |
|
 | |
chicu Elite


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
 | Sujet: 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 :). |
|
 | |
loko Débutant

Age: 18 Classe: 1S Calculatrice(s): Ti 84+ Messages: 11 Efficacité: 0 Date d'inscription: 09/09/2007
 | Sujet: 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 ;) |
|
 | |
AdRiWeB Légende


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 % ^^
 | Sujet: 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é ! |
|
 | |
loko Débutant

Age: 18 Classe: 1S Calculatrice(s): Ti 84+ Messages: 11 Efficacité: 0 Date d'inscription: 09/09/2007
 | Sujet: 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 |
|
 | |
Ver2guerre Légende


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...
 | Sujet: 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 |
|
 | |
Mic Administrateur


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

Age: 18 Classe: 1S Calculatrice(s): Ti 84+ Messages: 11 Efficacité: 0 Date d'inscription: 09/09/2007
 | Sujet: 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. |
|
 | |
loko Débutant

Age: 18 Classe: 1S Calculatrice(s): Ti 84+ Messages: 11 Efficacité: 0 Date d'inscription: 09/09/2007
 | Sujet: 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,"
|
|
|
 | |
Mic Administrateur


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
 | Sujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK] Mar 11 Sep - 19:42 | |
| |
|
 | |
Ver2guerre Légende


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...
 | Sujet: Re: Jeu de Snake trop lent. [FINI TOUT EST OK] Mar 11 Sep - 20:28 | |
| |
|
 | |
AdRiWeB Légende


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 % ^^
 | Sujet: 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 !! |
|
 | |
tama Animateur


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
 | Sujet: 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 ^^ |
|
 | |
AdRiWeB Légende


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 % ^^
 | Sujet: 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 ! |
|
 | |
tama Animateur


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
 | Sujet: 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 ^^ |
|
 | |
| | Jeu de Snake trop lent. [FINI TOUT EST OK] | |
|