π
<-

Code snake

Code snake

Message non lude mp35 » 17 Sep 2009, 12:17

Bonjour a tous,

Jvais vous parler de mon problème: le Snake (et oui encore) :D:
Enfaite voila je vous monte la parti du code qui va vous servir:

Code: Tout sélectionner
: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.
Avatar de l’utilisateur
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 52%
 
Messages: 13
Inscription: 16 Sep 2009, 00:00
Localisation: Rennes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1erS

Re: Code snake

Message non lude tama » 17 Sep 2009, 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 :)
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
Avatar de l’utilisateur
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 40.9%
 
Messages: 10995
Inscription: 19 Déc 2005, 00:00
Localisation: /dev/null mais je survis :)
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Code snake

Message non lude mp35 » 17 Sep 2009, 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.
Avatar de l’utilisateur
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 52%
 
Messages: 13
Inscription: 16 Sep 2009, 00:00
Localisation: Rennes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1erS

Re: Code snake

Message non lude tama » 17 Sep 2009, 12:59

hum... c'est normal, j'ai oublié une ligne --"
code corrigé.
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
Avatar de l’utilisateur
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 40.9%
 
Messages: 10995
Inscription: 19 Déc 2005, 00:00
Localisation: /dev/null mais je survis :)
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Code snake

Message non lude mp35 » 17 Sep 2009, 15:58

Ok nikel sa marche !! Mci :D:
Mnt mon problème c'est que j'ai essayer d'optimiser en gardant l'idée des deux variables comme cela
Code: Tout sélectionner
: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 :):
Avatar de l’utilisateur
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 52%
 
Messages: 13
Inscription: 16 Sep 2009, 00:00
Localisation: Rennes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1erS

Re: Code snake

Message non lude Marco » 17 Sep 2009, 16:43

Salut, tu peux garder le code de Tama avec EDIT pour le -
Code: Tout sélectionner
: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.
Image
Avatar de l’utilisateur
Marco
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 27.8%
 
Messages: 1259
Inscription: 22 Mar 2009, 00:00
Localisation: 78
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Code snake

Message non lude mp35 » 17 Sep 2009, 19:30

Je comprend pas trop :S.
Si je garde le code de tama pourquoi faut-il rajouter cela
Code: Tout sélectionner
: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 ?
Avatar de l’utilisateur
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 52%
 
Messages: 13
Inscription: 16 Sep 2009, 00:00
Localisation: Rennes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1erS

Re: Code snake

Message non lude Marco » 17 Sep 2009, 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: Tout sélectionner
: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: Tout sélectionner
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
Image
Avatar de l’utilisateur
Marco
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 27.8%
 
Messages: 1259
Inscription: 22 Mar 2009, 00:00
Localisation: 78
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Code snake

Message non lude Bisam » 17 Sep 2009, 19:49

Euh, le code qui marche c'est plutôt :
Code: Tout sélectionner
:If K différent de 0
:Then
:(K=26)-(K=24)-E
:(K=34)-(K=25)-F
:End
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5670
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Code snake

Message non lude Marco » 17 Sep 2009, 19:58

Ah oui, pardon ^^
Image
Avatar de l’utilisateur
Marco
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 27.8%
 
Messages: 1259
Inscription: 22 Mar 2009, 00:00
Localisation: 78
Genre: Homme
Calculatrice(s):
MyCalcs profile

Suivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: ClaudeBot [spider] et 9 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
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 !
12345
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2811 utilisateurs:
>2791 invités
>10 membres
>10 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)