π
<-

Code snake

Code snake

Unread postby 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: Select all
: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.
User avatar
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 52%
 
Posts: 13
Joined: 16 Sep 2009, 00:00
Location: Rennes
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1erS

Re: Code snake

Unread postby 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.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40.9%
 
Posts: 10995
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile

Re: Code snake

Unread postby 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.
User avatar
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 52%
 
Posts: 13
Joined: 16 Sep 2009, 00:00
Location: Rennes
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1erS

Re: Code snake

Unread postby 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.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40.9%
 
Posts: 10995
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile

Re: Code snake

Unread postby 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: Select all
: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 :):
User avatar
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 52%
 
Posts: 13
Joined: 16 Sep 2009, 00:00
Location: Rennes
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1erS

Re: Code snake

Unread postby Marco » 17 Sep 2009, 16:43

Salut, tu peux garder le code de Tama avec EDIT pour le -
Code: Select all
: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
User avatar
Marco
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 27.8%
 
Posts: 1259
Joined: 22 Mar 2009, 00:00
Location: 78
Gender: Male
Calculator(s):
MyCalcs profile

Re: Code snake

Unread postby mp35 » 17 Sep 2009, 19:30

Je comprend pas trop :S.
Si je garde le code de tama pourquoi faut-il rajouter cela
Code: Select all
: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 ?
User avatar
mp35
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 52%
 
Posts: 13
Joined: 16 Sep 2009, 00:00
Location: Rennes
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1erS

Re: Code snake

Unread postby Marco » 17 Sep 2009, 19:44

mp35 wrote:Je comprend pas trop :S.
Si je garde le code de tama pourquoi faut-il rajouter cela EDIT pour le -
Code: Select all
: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: Select all
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
User avatar
Marco
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 27.8%
 
Posts: 1259
Joined: 22 Mar 2009, 00:00
Location: 78
Gender: Male
Calculator(s):
MyCalcs profile

Re: Code snake

Unread postby Bisam » 17 Sep 2009, 19:49

Euh, le code qui marche c'est plutôt :
Code: Select all
:If K différent de 0
:Then
:(K=26)-(K=24)-E
:(K=34)-(K=25)-F
:End
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Code snake

Unread postby Marco » 17 Sep 2009, 19:58

Ah oui, pardon ^^
Image
User avatar
Marco
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 27.8%
 
Posts: 1259
Joined: 22 Mar 2009, 00:00
Location: 78
Gender: Male
Calculator(s):
MyCalcs profile

Next

Return to TI-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 8 guests

-
Search
-
Social TI-Planet
-
Featured topics
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
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
3001 utilisateurs:
>2976 invités
>17 membres
>8 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)