Problème programmation Snake ti 84+
Forum Programmation : Problème programmation Snake ti 84+
Bonjour à tous !
Je me suis lancé dans la programmation d'un snake sur calculatrice ( Ti 84+ ) et j'ai déjà un peu avancé, mais là je suis tombé sur un petit problème :
Lorsque j'utilise un "getkey" dans la boucle ("while" ) qui dessine mon serpent, pour permettre les changement de direction, ça met le jeu en pause en attendant que je presse une touche pour dessiner un nouveau bout de serpent dans la direction choisie. Donc sa fonctionne, mais je voudrais que le serpent continue a avancer sans attendre que je presse une touche.
Voilà, j'espère avoir été assez clair dans mon explication et que vous allez pouvoir m'aider.
Merci.
PS : Si vous connaissez un tuto de création de snake en Ti-Basic, c'est suffisant, merci.
Message édité par xnosx le 04-12-2007 à 12:15:16
Donjon de Naheulbeuk - Survivaure
Salut,
Tu fais une condition : If K = 0 alors continuer. Sinon, prendre le changement de direction.
Bien entendu, si tu appuies sur aucune touche getkey vaut donc 0 !
Ta boucle peut donc ce boucler sans être bloquer
Merci, je vais tester ça tout de suite.
Désolé, mais ça ne marche toujours pas, je tombe sur le même problème, ma boucle attend que j'appuie sur une touche pour continuer. Où dois-je positionner le getkey.
Avec un code source déjà fait, ce serait plus simple si quelqu'un aurait le courage de m'en écrire un juste pour diriger, même un seul pixel, pour voir.
Merci.
Post déjà ce que tu as fait. Ensuite, on te dira ce qui ne vas pas.
Ok, je prépare ça.
Voici mon code ( Pour l'exemple je n'utilise qu'un pixel et non un serpent ) :
Code Ti-Basic :
:Fnoff
:axesoff
:coordoff
:zoomsto
:clrdraw
:
:45=>x
:20=>y
:0=>s
:0=>k
:
:while s<7
:pxl-on(y,x
:getkey=>k
:
:if k=24
:x-1=>x
:
:if k=25
:y-1=>y
:
:if k=26
:x+1=>x
:
:if k=34
:y+1=>y
:
:End
Voila, je comprend bien pourquoi ça ne fonctionne pas, mais je ne vois pas d'autres solutions. Je n'ais pas utilisé ton conseil du "if k=0" car je ne sais pas du tout où le placer dans le code.
Merci de ton aide.
Message édité par xnosx le 06-12-2007 à 21:27:26
Il y a qu'un endroit pour la placer... C'est dans la boucle !
Et ça fonctionne
Et c'est : pxl-on(x,y) pas pxl-on(y,x).
Message édité par St3fff le 06-12-2007 à 22:05:39
Oui je m'en doutais que c'était dans la boucle ^^ lol.
En fait je me suis mal exprimé, je ne savais pas comment faire continuer le serpent a avancer dans le "if k=0".
Je viens juste de trouver une solution
, j'enregistre les variables x et y avant de les modifier pour ( Grâce a des conditions ) demander à la machine s'il faut incrémenter la variable x ou y. C'est plus clair avec du code :
Code Ti-basic :
:Fnoff
:axesoff
:coordoff
:zoomsto
:clrdraw
:
:45=>x
:20=>y
:0=>s
:0=>k
:0=>z
:0=>w
:
:while s<7
: pxl-on(y,x
: getkey=>k
:
:if k=24
:Then
:x=>z
:y=>w
:x-1=>x
:end
:
:if k=25
:Then
:x=>z
:y=>w
:y-1=>y
:end
:
:if k=26
:Then
:x=>z
:y=>w
:x+1=>x
:end
:
:if k=34
:Then
:x=>z
:y=>w
:y+1=>y
:end
:
:if k=0
:then
:if x!=z
:then
:if z<x
:x+1=>x
:if z>x
:x-+1=>x
:end
:if y!=w
:then
:if w<y
:y+1=>y
:if w>y
:y-1=>y
:end
:end
:End
Mais ce code ne marche pas
lol.
En fait, ça me fait "syntax error" lorque je vais vers le haut ou le bas.
Pourtant ça marche sur les cotés !
Et, lorsque je fait "goto", ça m'ammène dans la ligne ici colorée en rouge.
Cette solution de code dans le "if k=0" estalternative, danc si il yen a une autre ( Qui marche ^^ ) ou si vous pouviez trouvez une solution a ce bug, ce serais vraiment sypa. Merci.
Message édité par xnosx le 07-12-2007 à 19:48:25
Utilise cette syntaxe pour la condition :
If [condition]
THEN
DO
END
Oula, j'ai essayé, mais ça n'avance que d'un pixel vers le haut ou le bas, et ça repart du pixel juste au dessus ou en dessou, bref, ça revient sur la même ligne horizontale de départ.
Tu as surement du faire une erreur en mettant deux fois la même chose pour une touche ou inversement...
Je déteste lire le TI Basic... Ça fait ma au yeux ^^
Le plus simple c'est de faire une condition pour chaque touche, avec une condition k=0 pour que ton serpent avance. Et encore 4 autres conditions qui donnent une variable P selon le sens que doit prendre à chaque fois le serpent pendant une durée infini du k=0.
J'espère avoir été claire
Ouais, c'est vrai que sans coloration de code, c'est assez chiant à lire^^.
Je vais essayer de mettre en pratique ce que tu viens de me dire, merci beaucoup de ton aide et de ta patience.
Puis si j'y arrive vraiment pas, c'est pas grave^^ j'écouterais en cours comme ça
.
En plus je sais que des tutos de création de snake en ti-basic sont en cours de construction donc...
Merci encore a +.
Message édité par xnosx le 07-12-2007 à 22:20:55
Il y a 1671 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
