Tom's Guide > Forum > Programmation > Problème programmation Snake ti 84+

Problème programmation Snake ti 84+

Forum Programmation : Problème programmation Snake ti 84+

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour à tous ! :hello:
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. :D

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
------------------------------ Vous connaissez pas les sagas Mp3 ?! Voici les deux meilleures à mon goût :
Donjon de Naheulbeuk - Survivaure
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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 ;)

Répondre à St3fff

Merci, je vais tester ça tout de suite.

Répondre à xnosx

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.

Répondre à xnosx

Post déjà ce que tu as fait. Ensuite, on te dira ce qui ne vas pas.

Répondre à St3fff

Ok, je prépare ça.

Répondre à xnosx

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
Répondre à xnosx

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
Répondre à St3fff

Oui je m'en doutais que c'était dans la boucle ^^ lol. :p En fait je me suis mal exprimé, je ne savais pas comment faire continuer le serpent a avancer dans le "if k=0". :sweat:

Je viens juste de trouver une solution :D , 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 :cry: lol.
En fait, ça me fait "syntax error" lorque je vais vers le haut ou le bas.
Pourtant ça marche sur les cotés ! :pt1cable:
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
Répondre à xnosx

Utilise cette syntaxe pour la condition :

If [condition]
THEN
DO
END

Répondre à St3fff

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.

Répondre à xnosx

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 :)

Répondre à St3fff

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 :lol: .
En plus je sais que des tutos de création de snake en ti-basic sont en cours de construction donc...

Merci encore a +. :hello:


Message édité par xnosx le 07-12-2007 à 22:20:55
Répondre à xnosx
Tom's Guide > Forum > Programmation > Problème programmation Snake ti 84+
Aller à :

Il y a 1671 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens