lbl 1
while K=26
codetouche->K
if K=0:26->K
output(A,B," \ un espace
B+1->B
if B=17:goto0
if N=A et M=B:goto 2
output(A,B,"*
for(Z,1,140
end
end
ensuite c'est la meme chose pour les trois autres directions et l'etiquette 0 affiche perdu.
Voilà mais le seul problème c'est que maintenant je suis confronté à pas mal de problème:
-quand le serpent mange une souris, il avance directement de deux cases, ce qui fait que quand une souris se trouve sur un bord, le serpent se "cogne" et là on a perdu
-j'aimerais bien faire en sorte que le serpent grandisse mais là je n'ai aucune idée de comment faire
-quand on appuie sur une autre touche que les flèches ça coupe la boucle et on ne peut plus rien faire, question: comment y remédier?
-et enfin j'aimerais savoir si il y a un moyen de le raccourcir au niveau des lignes (qu'il y est un moyen de faire une seul fois au lieu de 4 pour les 4 directions)
Autorisation : Membre
Nb de messages : 364
Inscrit le : Dim 13 Fév 2011, 14:17
Posté le : Ven 21 Oct 2011, 19:52
Salut! Pour les directions, tu peut mettre :
Code
:Codetouche -> K
:Output(A,B,"
:B+(K=26)-(K=24 -> B
:A+(K=34)-(K=25 -> A
:If B = ou A= : Goto 0 <-- tu met les valeurs pour lesquelles le serpent meurs
: La suite des instructions
Avec ce code, ton serpent peut se déplacer dans toutes les directions avec les flèches.
lbl 1
while 1 //ici modif
codetouche->K
:Output(A,B,"
:B+(K=26)-(K=24 -> B
:A+(K=34)-(K=25 -> A
:If B = ou A= : Goto 0 <-- tu met les valeurs pour lesquelles le serpent meurs
if K=0:26->K
output(A,B," \ un espace
B+1->B
if B=17:goto0
if N=A et M=B:goto 2
output(A,B,"*
for(Z,1,140
end
end
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes
Autorisation : Membre
Nb de messages : 10
Inscrit le : Jeu 09 Jui 2011, 15:41
Posté le : Ven 21 Oct 2011, 21:55
d'accord, si j'ai bien compris le while 1 permet de faire une boucle infini (ça remplace la lbl 1 et goto 1)
Par contre j'ai pas compris ton message sandro, si je mets
Code
B+(K=26)-(K=24 -> B
:A+(K=34)-(K=25 -> A
pourquoi est ce que j'ai besoin de
Code
if K=0:26->K
output(A,B," \ un espace
B+1->B
if B=17:goto0
if N=A et M=B:goto 2
output(A,B,"*
for(Z,1,140
En fait si j'ai bien compris et recopié l'astuce de déplacement le serpent ne se déplace que quand on lui demande, et ça fait aussi un truc bizarre au niveau de l'espace, le serpent laisse des "traces" derrière lui.
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Sam 22 Oct 2011, 11:36
Citer
d'accord, si j'ai bien compris le while 1 permet de faire une boucle infini (ça remplace la lbl 1 et goto 1)
Par contre j'ai pas compris ton message sandro, si je mets
Code
B+(K=26)-(K=24 -> B
:A+(K=34)-(K=25 -> A
Celui la n'est que pour combler le problème du double avancement dont tu te plaignais : si ça avance de 2 et que ça recule de 1, c'est comme si ça avançait de 1.
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes