Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Besoins d'aide pour programation snake
harven le 24/08/2010 à 10:55
bonjour a tous je suis nouveau sur le site ( fraichement inscrit ) et j'aurai besoins d'aide pour la programation d'un petit snake tous simple ( sans le labi qui va avec )mais avec un compteur de poin qui va jusqu ... bha jusqua qu'on perde et avec le snake qui "grandi de 1" quand il mange un " souris " ( ou avec la queud qui ne s'efface pas ou avec la queud qui s'efface ).
voici ce que j'ai reussi a faire :
- arriver a faire bouger un rond sur l'ecran avec les touche haut bas gauche droite
ps : j'ai pas de cable et j'ai une 82
autre ps : comment vous faite pour que quand vous ecrivez les code , qu'il soit dans un carré "gris claire" .
bha voila c'est tous et sinon j'avait un plus moins a presenter mais il a ete efface quand les pile son morte ( il y avait 6 niveu de difficulté )et j'ai bien parcouru les forum et vu les niveau de certain il se pourait qu'il on des chose a m'apprendre ( beaucoup de chose ) et une derniere chose , je n'arrive pas a codé le graphique ( a par le stylo ) mais les autre outils ... idem pour les getkey ( j'arrive un petit peu )
bon bha c'est tous
a+
harven
Sangohan38 le 24/08/2010 à 11:09
Bonjour Harven.
On va commencer par deux petites remarques qui font tellement mieux lorsque elles sont suivies:
-Une phrase commence par une majuscule et se termine par un point.
-Essaye d'aérer ton texte et de le structurer un peu plus (les PS(=post-scriptum) se placent à la fin du post par exemple).
Pour que le code soit dans un carré gris clair, on utilise la balise code qui se trouve au dessus de la zone d'édition.
Ensuite, si tu pouvais reformuler tes questions de façon claire, on pourrait sans doute y répondre mais là je ne les vois pas.
Sangohan38harven le 24/08/2010 à 11:45
Bon globalement ce que je recherche :
- Je recherche de l'aide pour la programation d'un snake.
- Je recherche egalement de l'aide pour mieux comprendre l'utilisation des getkeys et de la fonction "draw" dans un programme.
Pour le programme sanke j'ai deja fait :
- Un programme ou on peu deplacer un rond sur l'ecran de la ti 82.
Et je recherche :
- Une fonction pour placer aleatoirement une "souris" que le snake devras mangé.
- Une autre pour compter les points.
- Et un pour faire grandire mon snake au fur et a mesure qu'il mange des "souris" / Ou plus simple : Que le snake ne s'efface pas durant la partie.
Ps : Je n'ai pas de cable ti / pc
a+
Harven.darkmory le 24/08/2010 à 11:56
- getkeys permet de stocker la valeur de la touche sur laquelle tu appuie dans une variables
il va stocker le code touche (la valeur numériques de la touche) dans K
ce qui permets des tests après
-pour la souris tu peut utiliser deux rand qui donneront les coordonnés de la souris
Code
Ex: rand(1,40) -> A
rand(1,40) -> B
output(A,B,[couleur=#55FF55](ta souris)[/couleur])
-pour les points tu fais un test si ton serpent est sur la souris tu gagne un points
Code
Ex: If (ton serpent)= (ta souris)
Then
rand(1,40) -> A
rand(1,40) -> B //une nouvelle souris apparait
output(A,B,[couleur=#55FF55](ta souris)[/couleur])
P+1->P // +1 pts
harven le 24/08/2010 à 12:05
Merci c'est tres simpa de part.
Mais sinon pour la fonction "draw" , aurais tu des indication a me donner ?
( J'arrive tous de meme a faire les contour de l'ecrans avec "horizontal" et "vertical".
a+
HarvenSangohan38 le 24/08/2010 à 12:14
Pour expliquer une fonction, rien ne vaut
le site du zéro.
Pour placer aléatoirement un point, utilise la fonction int(rand X+1 où X est soit la longueur de ton écran soit la largeur.
Pour compter les points tu peut rajouter une condition du style:
Code
If A=X and B=Y <-- où (
) A et B sont les coordonnées de ton serpent et X,Y celles de ta souris
S+1->S <-- on ajoute 1 à la variable S qui sera ton score
...
... <--- le reste de ton programme jusqu'à ce que l'on perde
Disp S <--- on affiche le score
Sangohan38
harven le 24/08/2010 à 12:31
Merci bien mais le site du zero je connait et j'ai deja vu ce tuto ( qui ma d'ailleurs permi de commencer la programation ).
Et j'aurai besoin de trois derniere chose :
- Une fonction qui permet de faire perdre la partie quand le snake se mange et afficher "game over" au milieu de l'ecran.
- Une autre pour faire grandire de 1 le snake quand il mange une souris.
- Optionnel * : un menu de jeu plus beau.
a+
Harvenharven le 24/08/2010 à 13:19
Et ou je peut trouver la fonction "str" ou "chaine" en francais ?
Ps : J'ai une ti 82.
a+
Harvendarkmory le 24/08/2010 à 13:30
- pour le game over c'est casi comme la souris mangé
Code
Ex: If (ton serpent)= (le mur)
Disp "Game over"
-pour le menu utilise la fonction menu
harven le 24/08/2010 à 13:50
Mais la touche "str" ou "chaine" en francais ?
Je la trouve ou ?
HarvenSangohan38 le 24/08/2010 à 13:50
Sur la 82 non stats, il n'existe pas de fonctions équivalente aux chaines.
Sangohan38harven le 25/08/2010 à 13:43
J'ai codé un snake, voici le code :
Code
Lbl 0
Clrhome
1#X:1#Y
1#A:1#B
Repeat K=45 //// Dsl sinon quand je met " repeat (C=X and D=Y) ca marche pas.
Output(Y,X,"0"
Output(Y,X,"0"
Y#A:X#B
getkey#K
X-(K=24)+(K=26)#X
Y-(K=25)+(K=34)#Y
if X=0:1#X
if X=17:16#X
if Y=0:1#Y ///// Il delimite les bord de l'ecran
if Y=9:8#Y
int rand(8#C
int rand(16#D
output(B,A,"o" [couleur=#FF0000]<- erreur domaine [/couleur]
if (X=D and Y=C
P+1#P
goto 0
end
Voila , comme vous pouvez la voir ... il est nul

mais ca ma met erreur domaine a la ligne marquer
.(les "#" sont l'equivalent de "sto ->" )
Aider moi please.
A+
Harven.
Sangohan38 le 25/08/2010 à 14:01
Une erreur qui est possible c'est lorsque tu déplace ton curseur hors de l'écran le A et le B n'ont pas le temps d'être modifiés et rerstent à 0.
Place ta ligne Y->B:X->A avant le Output.
Et aussi, tu as inversé B et A dans ton output car le premier argument est la ligne et le second la colonne.
Sangohan38harven le 25/08/2010 à 15:44
J'ai suivi tes conseil mais maitenant le curseur du snake ne bouge plus .homer__simpsons le 22/12/2010 à 11:25
Ah la la.. le vieux truc le snale!!
J'en ai fait un mais avant j'avais fait un teleport: Atteindre un point...
Le code qui permet de faire mon snake: (Il y a plein de truc autour mais c'est trop long a recopié!!)
Code
:o->Xmin:0->Ymin
:94->Xmax //je definis le graphe!
:62->Ymax
:ClrDraw
:AxesOff
:0->R //0 Pommes
:1->D // initialisation de ces deux variables
:1->E utiles pour la suite
:31->A // A et B coordonnées tête serpent
:55->B
:24->Z // variable de deplacement
1->I //endroit de lecture
1->dim((petit L [liste])Ordpi //ordonnée
1->dim((petit L [liste])Abspi //abscisse
:Repeat 0 //Boucle infini
:Repeat pxl-test(A,B ..Repeter jusqu'a ce que ce pixel soit allumé
:(petit L [liste])Ordpi(I->D //on recupere la position du pixel
:(petit L [liste])Abspi(I->E de la queue
:A->(petit L [liste])Ordpi(I //on enregistre la position du pixel
:B->(petit L [liste])Abspi(I de la tete
:I+1->1 //on change l'endroit de lecture
:If I)R+2:1->I //si on sort de la dimension de la liste
:GetKey on retourne au debut
:If Ans:Ans->Z //si on a appuyé sur une touche on enregistre la quelle
:Pxl-on(A,B // On allume le pixel de la tête
:B-(Z=24)+(Z=26)->B //on dit la ou la tete va
:A-(Z=25)+(Z=34)->A
:Pxl-Off(D,E //On eteint le pixel de la queue
:End //fin du pixel test
:If A=C and B=F //Si la tête est a l'endroit de la queu
:Then
:While pxl-test(C,F //repeter jusqu'a ce que ce pixel soit eteint
:randint(1,61->C //on met la souris a n'importe quel endroit
:randint(1,65->F (1,65 et 1,61 peuvent etre changé: c'est pour ma
:End fenetre
:R+1->R //Plus une pomme
:PxlOn(C,F //on montre ou est la souris
:R+1->dim((petit L [liste])Abspi //on redimensionne les listes pour
:R+1->dim((petit L [liste])Ordpi permettre eu snake de grandir
:Else //si t'es pas sur la pomme
:Text(27,30,"GAME OVER
:ClrList ((petit L [liste])Abspi //On effance les listes pour prendre
:ClrList ((petit L [liste])Ordpi moins de place
:Text(35,30,"Score:",R
:Pause
:End
:End
N'hesitez pas a me poser des questions!! Jes suis sur un autre forum aussi:
http://www.texas-intrument.xooit.fr
j'espere avoir était assez clair...j'ai pas recopier tout mon code il fait au moins le double... Mais j'ai recopier l'essentiel...
J'ai alleger au maximum mon code et est cherché la vitesse: Certains endroits seront peut-etre incomprehensible pour certains... Dites moi ou ils sont!!
Sangohan38 le 22/12/2010 à 21:03
A mon avis, ce code n'est qu'un copier/coller d'un site car vu le nombre d'erreur de syntaxe et d'optimisation...
Notamment les Ordpi, Abspi qui ne veulent rien dire, le I)+2 qui doit donner une jolie erreur de syntaxe et enfin:
Code
:GetKey
:If Ans:Ans->Z
qui peut être remplacé tout simplement par:
Et pour finir, ici c'est un sujet pour aider à créer un snake, pas pour venir se la péter en montrant celui qu'on à créé.
Sangohan38
eracro le 05/10/2011 à 21:24
salut,
dans ma programation de snake il m'ont marque erreur argument au 1er "if" je ne comprend pas pourquoi ?

de plus esce normal que quand je fais 2nde 6 il marguent l6 et pas liste ?
aussi a un moment il mettent [pas egal a ] esque s'est pareil si on met le = barre?
aidez moi s'il vous plaits !!!!

sandro le 05/10/2011 à 21:30
C'est celui là le snake dont tu parle ou c'est juste encore un autre multi-post?

Persalteas le 06/10/2011 à 15:08
je t'ai répondu sur espace TI.
Et oui c'est normal le L6.
Rappelle toi un truc: Il y a très rarement une truc écrit en toutes lettres en français dans un code pour Ti 82. Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.