Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » mon programme est bugé et je n'arrive pas à résoudre le prob
4lex1s Hors ligne Membre Points: 11 Défis: 0 Message

mon programme est bugé et je n'arrive pas à résoudre le prob

Posté le 20/01/2015 00:18

bonjour,
j'ai laissé mon autre projet de côté (celui sur lequel j'avais demandé de l'aide parce que je savais pas faire baisser ma barre de vie) car je ne sais plus trop quoi faire dessus pour l'instant, pendant ce temps j'ai donc commencé un jeu Snake, mais mon jeu est bugé (+ j'ai une petite question pour la suite)

voici mon code :
[brown]Cls[/brown]
Int (110Ran# )→A
Int (50Ran# )→B
[b][brown]PlotOn[/brown][/b] A,B
29→Y
40→X
3→D
[b][blue]Do[/blue][/b]
[b][brown]PlotOn[/brown][/b] X,Y
GetKey→G
G=[maroon]38[/maroon]⇒1→D
G=[maroon]28[/maroon]⇒2→D
G=[maroon]27[/maroon]⇒3→D
G=[maroon]37[/maroon]⇒4→D
D=[maroon]1[/maroon]⇒X-1→X
D=[maroon]2[/maroon]⇒Y+1→Y
D=[maroon]3[/maroon]⇒X+1→X
D=[maroon]4[/maroon]⇒Y-1→Y
[b][blue]If[/blue][/b] X=A And Y=B
[b][blue]Then[/blue][/b]
Int (110Ran# )→A
Int (50Ran# )→B
[b][brown]PlotOn[/brown][/b] A,B
[b][blue]IfEnd[/blue][/b]
[b][blue]LpWhile[/blue][/b] [maroon]1[/maroon]=[maroon]1[/maroon]


le bug c'est que quand la tête de mon serpent (dont les coordonnées sont X et Y) touche le fruit (enfin un pixel dont les coordonnées sont A et B) un nouveau nombre est généré qui seront les coordonnées d'un nouveau fruit, et un point est créé en coordonnées A,B... mais à ce moment là les coordonnées X et Y de la tête de mon serpent deviennent les même que les coordonnées du nouveau fruit et je ne sais pour quel raison, j'aimerais savoir comment empêcher cela et faire en sorte que mon serpent arrête de se prendre pour un ninja et continue son chemin normalement, aidez moi svp.

pour vous aider je vais vous expliquer ce que moi j'ai voulu faire:

Int (110Ran# )→A
Int (50Ran# )→B
au début créent pour la première fois les coordonnées d'un premier fruit, celui ci est affiché à la ligne suivante:
PlotOn A,B

29→Y et 40→X sont les coordonnées de départ que j'ai choisi pour la tête de mon serpent

3→D D est la direction dans laquel mon serpent se déplace (1 pour la gauche, 2 pour le haut, 3 pour la droite et 4 pour le bas) une fois dans la boucle les coordonnées de X ou Y sont modifié selon la valeur de D:
D=1⇒X-1→X
D=2⇒Y+1→Y
D=3⇒X+1→X
D=4⇒Y-1→Y

PlotOn X,Y est au début de la boucle, le point créer représente la tête du serpent

Getkey→G pour modifier la valeur de G qui changera la valeur de D avec ces 4 lignes :
G=38⇒1→D
G=28⇒2→D
G=27⇒3→D
G=37⇒4→D
je n'ai pas fait directement
G=38⇒X-1→X
G=28⇒Y+1→Y
G=27⇒X+1→X
G=37⇒Y-1→Y
pour éviter que le fait d'appuiller sur une autre touche que les flèches fasse arrêter le serpent, et aussi car je pourrais ajouter d'autres choses qu'un simple déplacement du serpent pour rendre mon jeu Snake unique

If X=A And Y=B
Then
Int (110Ran# )→A
Int (50Ran# )→B
PlotOn A,B
IfEnd
LpWhile 1=1

la condition n'est rempli seulement si la tête de mon serpent se trouve sur le même pixel que le fruit, si cela se produit un nouveau fruit est créé a de nouvelles coordonnées (et c'est là que ca commence à faire n'importe quoi).

merci d'avance pour votre aide



ensuite ce n'est plus en rapport avec ce problème mais j'aimerais savoir comment faire pour effacer la queue de mon serpent, j'aurais par exemple une variable T qui sera la taille en pixel de mon serpent et des pixels seront effacé de sorte à ce que mon serpent ne dépasse jamais cette taille, et le dernier point, c'est que je ne sais pas comment faire savoir à mon programme que la tête de mon serpent touche ça queue si cela arrive pour le faire perdre, j'ai vu dans le menu du SHIFT+F4 une fonction "PxlTest(" j'ai pensé que ça pourrait m'aider si son utilité est celle que j'imagine (le nom me ferais penser qu'il serais possible de vérifier si un pixel à telles coordonnées est allumé ou pas), si c'est une bien comme ca qu'il faudrais le faire pouvez vous m'expliquer comment l'utiliser dans mon programme ?

merci d'avance (encore une fois)


Nemhardy Hors ligne Grand maître des Traits d'Esprit Points: 1243 Défis: 54 Message

Citer : Posté le 20/01/2015 07:00 | #


À tous les coups, c'est que les variables X et Y sont utilisées "en interne" par la machine quand tu utilises les fonctions graphiques (Plot-On par exemple), du coup tu peux essayer de remplacer X et Y par deux autres variables pour voir ce que ça donne déjà, car je ne suis pas sûr à 100% de ce que j'avance ^^...
Pour la deuxième question, je suis sur un portable donc c'est pas trop évident pour l'instant de répondre, mais tu devrais en savoir plus rapidement.
4lex1s Hors ligne Membre Points: 11 Défis: 0 Message

Citer : Posté le 20/01/2015 07:36 | #


Merci Nemhardy, je vais essayer déjà essayer ça, et pour la deuxième question je ne pourrais pas voir directement après que tu y ais répondu, donc merci d'avance

Ajouté le 20/01/2015 à 18:11 :
j'ai essayé de changer les variables de la tête de mon serpent, j'ai choisi K et L et ca marche, merci

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 137 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd