Bonjour

Je suis en train de programmer le jeu "snake". Mais j'ai besoin d'aide : le "snake" a un pouvoir, c'est quand il passe par la frontière de la fenêtre, il apparaîtra de l'autre coté sur la même ligne (si le mouvement est horizontal) et sur la même colonne (si le mouvement est vertical).
La problème est que le "snake" passe toujours à la ligne suivante, puis retourne vers la ligne initiale.
Voici le code ("delay" pour marquer une instant (vitesse de mouvement), "print_element" pour afficher le "snake", "print" est la procédure principale).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
program test;
uses wincrt, winprocs;
procedure delay ( millisecond : integer );
var
fin : longint;
begin
fin := GetTickCount + ( Millisecond );
Repeat
Until GetTickCount >= fin;
end;
procedure print_element ( x, y : byte );
var
i : byte;
begin
gotoXY ( x, y );
write('..');
delay(100);
gotoXY ( x, y );
write(' ');
end;
procedure print;
var
x, y : byte;
begin
while not x = 0 do { pour marquer une boucle infinie }
   begin
	for x := 1 to 80 do
		print_element(x, 1);
   end;
end;
begin
print;
end.