|
|
| Auteur | Message |
|---|
mp35 Débutant

Age: 15 Classe: 1erS Calculatrice(s): TI-82 stats.fr , TI collège , TI GALAXIE 40 Messages: 13 Efficacité: 0 Localisation: Rennes Date d'inscription: 16/09/2009
 | Sujet: Code snake Jeu 17 Sep - 12:17 | |
| Bonjour a tous, Jvais vous parler de mon problème: le Snake (et oui encore) Enfaite voila je vous monte la parti du code qui va vous servir: | Code: | :repeat K=105 :Pxl-on(Y,X :X-(K=24)+(K=26)->X :Y-(K=25)+(K=34)->Y :end
|
Donc voila mon snake bouge bien mais le seul problème c'est que je n'ai strictement aucune idée de comment le faire avancé tout seul. J'ai pas mal cherché , j'ai pas trouvé. J'ai aussi analiser le code d'autre snake or il utilise des matrice et malheuresement je ne comprend pas leur fonctionement ni comment s'en servir pour un snake.
Donc je voudrais savoir si il a moyen de le faire avancé tout seul sans matrice. |
|
 | |
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: Code snake Jeu 17 Sep - 12:31 | |
| le faire avancer tout seul dans la même direction ? en fait il faut pas faire comme ça, le mieux c'est de faire 2 variables, E et F par exemple (ou U et V ou ce que tu veux, mais évite X et Y parce qu'elle sont souvent utilisées pour autre chose et donc ça va tout mettre en l'air) enfin bref, voici le bout de code qui pourrait aider, après les "//" c'est les commentaires : //E = déplacement horizontal à chaque itération //F = déplacement vertical à chaque itération //K = dernière touche appuyée //A = position X de la tête du serpent //B = position Y de la tête du serpent
0->E 0->F //serpent immobile au départ 0->K //aucune touche pressée 1->A 1->B //ou ce que tu veux, c'est la position initiale du serpent
Repeat K=105 A+E->A B+F->B //déplacement du serpent Pxl-On A,B getKey->K //raaaah c'est cette ligne que j'ai oublié
If K=24 Then //déplacement à gauche -1->E 0->F End
If K=25 Then //déplacement en haut 0->E -1->F End
If K=26 Then //déplacement à droite 1->E 0->F End
If K=34 Then //déplacement en bas 0->E 1->F End
//c'est sûrement possible d'optimiser ça, à toi de voir, je le donne en clair pour que tu comprennes le principe
//gestion des collisions (obstacles, bords ...) End //fin de la boucle
Et voilà, à toi de faire ce que tu veux avec ensuite Si y a quelque chose que tu comprends pas => post :)
Dernière édition par tama le Jeu 17 Sep - 13:00, édité 2 fois |
|
 | |
mp35 Débutant

Age: 15 Classe: 1erS Calculatrice(s): TI-82 stats.fr , TI collège , TI GALAXIE 40 Messages: 13 Efficacité: 0 Localisation: Rennes Date d'inscription: 16/09/2009
 | Sujet: Re: Code snake Jeu 17 Sep - 12:47 | |
| J'ai compris ton code. Je l'ai mis sur la TI mais mon point ne bouge pas quand j'appuie sur les touches. (la calculette ne me signale pas non plus d'erreur). Et merci d'avoir repondu rapidement, je reviens vers 17h10. |
|
 | |
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: Code snake Jeu 17 Sep - 12:59 | |
| hum... c'est normal, j'ai oublié une ligne --" code corrigé. |
|
 | |
mp35 Débutant

Age: 15 Classe: 1erS Calculatrice(s): TI-82 stats.fr , TI collège , TI GALAXIE 40 Messages: 13 Efficacité: 0 Localisation: Rennes Date d'inscription: 16/09/2009
 | Sujet: Re: Code snake Jeu 17 Sep - 15:58 | |
| Ok nikel sa marche !! Mci  Mnt mon problème c'est que j'ai essayer d'optimiser en gardant l'idée des deux variables comme cela | Code: | :effdessin :0->E :0->F :0->K :40->A :30->B :repeat K=105 :A+E->A :B+F->B :Pxl-on(B,A // J'ai inverser A et B il y avait un problème de direction :codetouche->K //J'ai la stats.fr :E-(K=24)+(K=26)->E :F-(K=25)+(K=34)->F :end
|
Les direction sont bonnes mais le problème c'est que: -si je fais gauche sa va allais a gauche (normale) et si après j'appuie sur haut sa avance en biais vers le haut(en diagonale quoi). C'est comme si les direction s'ajoutait.
J'ai trouver cmt dire, sa fais exactement comme des vecteurs.
Autre exemple: J'appuis haut (la tout va bien) puis j'appuie bas et le pixel au lieu de partir vers le bas il s'arète.
Donc je sais pas si mon optimisation est possible, peut-etre mis suis-je mal prix. Merci  |
|
 | |
Marco Elite


Age: 19 Classe: PSI ISEP Calculatrice(s): TI 83+ Messages: 645 Efficacité: 17 Localisation: 78 Date d'inscription: 22/03/2009
Divers Dernière note en maths: -/20
 | Sujet: Re: Code snake Jeu 17 Sep - 16:43 | |
| Salut, tu peux garder le code de Tama avec EDIT pour le -| Code: | :If K différent de 0 :Then :-(K=24)+(K=26)->E :-(K=25)+(K=34)->F :End |
à la place de la série de condition. Car si K=0, on n'a appuyé sur aucune touche, donc le serpent continue dans la même direction._________________ 
Dernière édition par Marco le Jeu 17 Sep - 20:01, édité 1 fois |
|
 | |
mp35 Débutant

Age: 15 Classe: 1erS Calculatrice(s): TI-82 stats.fr , TI collège , TI GALAXIE 40 Messages: 13 Efficacité: 0 Localisation: Rennes Date d'inscription: 16/09/2009
 | Sujet: Re: Code snake Jeu 17 Sep - 19:30 | |
| Je comprend pas trop :S. Si je garde le code de tama pourquoi faut-il rajouter cela | Code: | :If K différent de 0 :Then :(K=24)+(K=26)->E :(K=25)+(K=34)->F :End |
Ou bien alors doit-il remplacer d'autre ligne de code si oui lequels ?
Dernière édition par mp35 le Jeu 17 Sep - 19:46, édité 1 fois |
|
 | |
Marco Elite


Age: 19 Classe: PSI ISEP Calculatrice(s): TI 83+ Messages: 645 Efficacité: 17 Localisation: 78 Date d'inscription: 22/03/2009
Divers Dernière note en maths: -/20
 | Sujet: Re: Code snake Jeu 17 Sep - 19:44 | |
| | mp35 a écrit: | Je comprend pas trop :S. Si je garde le code de tama pourquoi faut-il rajouter cela EDIT pour le -
| Code: | :If K différent de 0 :Then :-(K=24)+(K=26)->E :-(K=25)+(K=34)->F :End |
|
Les valeurs dans E et F indiquent le déplacement horizontal et vertical. Si E vaut 1 ou -1, F vaut 0 car on ne se déplace qu'horizontalement ou verticalement, pas les deux en même temps. De même si F vaut 1 ou -1. Si on appuie sur aucune touche, K=0, et le serpent doit continuer dans la direction précédente, d'où le If. Le code remplace les If de Tama :
| Code: | If K=24 Then //déplacement à gauche -1->E 0->F End
If K=25 Then //déplacement en haut 0->E -1->F End
If K=26 Then //déplacement à droite 1->E 0->F End
If K=34 Then //déplacement en bas 0->E 1->F End |
_________________ 
Dernière édition par Marco le Jeu 17 Sep - 20:00, édité 1 fois |
|
 | |
Bisam Elite


Age: 32 Classe: Prof de Maths Sup Calculatrice(s): Voyage 200 + TI 92 (de 1996) Messages: 793 Efficacité: 7 Localisation: Lyon Date d'inscription: 11/03/2008
Divers Dernière note en maths: 14.8/20 à la 2ème épreuve de l'agreg 2000
 | Sujet: Re: Code snake Jeu 17 Sep - 19:49 | |
| Euh, le code qui marche c'est plutôt : | Code: | :If K différent de 0 :Then :(K=26)-(K=24)->E :(K=34)-(K=25)->F :End |
|
|
 | |
Marco Elite


Age: 19 Classe: PSI ISEP Calculatrice(s): TI 83+ Messages: 645 Efficacité: 17 Localisation: 78 Date d'inscription: 22/03/2009
Divers Dernière note en maths: -/20
 | Sujet: Re: Code snake Jeu 17 Sep - 19:58 | |
| Ah oui, pardon ^^ _________________  |
|
 | |
mp35 Débutant

Age: 15 Classe: 1erS Calculatrice(s): TI-82 stats.fr , TI collège , TI GALAXIE 40 Messages: 13 Efficacité: 0 Localisation: Rennes Date d'inscription: 16/09/2009
 | Sujet: Re: Code snake Jeu 17 Sep - 20:11 | |
| Ok j'ai compris !! Ca me fais une belle optimisation tout ca. MCI !! Sinon j'ai réfléchie un peu et si je veux pouvoir effacé le corp du snake au fur et a mesure qu'il avance il va me faloire utilisé les matrice si je ne me trompe pas.Car si j'efface les coordonné de A,B c'est la tête que j'efface.Jme trompe ? |
|
 | |
jacques Grand Initié


Age: 16 Classe: 1èreS Calculatrice(s): ti84+SE Messages: 73 Efficacité: 1 Date d'inscription: 25/08/2009
 | Sujet: Re: Code snake Jeu 17 Sep - 20:36 | |
| Non, en fait il faudrait que tu crées des listes pour stocker les coordonnées (une liste pour les abscisses, et une pour les ordonnées). |
|
 | |
mp35 Débutant

Age: 15 Classe: 1erS Calculatrice(s): TI-82 stats.fr , TI collège , TI GALAXIE 40 Messages: 13 Efficacité: 0 Localisation: Rennes Date d'inscription: 16/09/2009
 | Sujet: Re: Code snake Jeu 17 Sep - 21:51 | |
| Bon après une heure d'essei j'arrive a ca : | Code: | :EffDessin :0->N :0->L :0->E :0->F :0->K :40->A :30->B :repeat K=105 :N+1->N :A+E->A :B+F->B :Pxl-On(B,A :codeTouche->K :If K diferent de 0 :Then :(K=26)-(K=24)->E :(K=34)-(K=25)->F :Chaine(L1,{A})->L1 :Chaine(L2,{B})->L2 :Dim(L1)->U :Dim(L2)->V :L+1->L :End :If N=10 :Then :L+1->L :Pxl-Off(L1(U),L2(V)) :End :End |
Résultat le prm lag et surtout sa ne séface pas.Bref je suis noyé |
|
 | |
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: Code snake Jeu 17 Sep - 23:22 | |
| |
|
 | |
mp35 Débutant

Age: 15 Classe: 1erS Calculatrice(s): TI-82 stats.fr , TI collège , TI GALAXIE 40 Messages: 13 Efficacité: 0 Localisation: Rennes Date d'inscription: 16/09/2009
 | Sujet: Re: Code snake Ven 18 Sep - 7:44 | |
| Alors le "L" je ne m'en sert pas enfaite .:S Et le N c'est parce que quand je démarais le snake je soupçonnai le programme d'effacé la tête dès le débuts,tandis que la sa me laisse le temps d'avancé un peu sans qu'il m'efface la tête.(Mais sa ca marche pas). Je connaissait pas trop les liste j'ai essayé des truc mais rien de très convaincant. |
|
 | |
|