Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Uses graphABC,ABCObjects;
- var
- snake:CircleABC;
- body:array[1..10] of CircleABC;
- x,y,i,kx,ky,x2,y2:integer;
- procedure keyDown(key:integer);
- begin
- if(key = VK_Right) then
- begin
- kx := 40;
- ky := 0;
- end;
- if(key = VK_Left) then
- begin
- kx := -40;
- ky := 0;
- end;
- if(key = VK_Up) then
- begin
- ky := -40;
- kx := 0;
- end;
- if(key = VK_Down) then
- begin
- ky := 40;
- kx := 0;
- end;
- end;
- begin
- for i:=0 to 16 do
- begin
- line(0+i*40,0,0+i*40,windowHeight);
- end;
- for i:=0 to 12 do
- begin
- line(0,0+i*40,windowWidth,0+i*40);
- end;
- x := 20;
- y := 20;
- snake := CircleABC.Create(x,y,18,clBlue);
- for i:=1 to 10 do
- begin
- x2 := x;
- y2 := y+40*i;
- body[i] := CircleABC.Create(x2,y2,18,clBlack);
- end;
- onKeyDown := keyDown;
- while(true) do
- begin
- for i:=10 downto 2 do
- begin
- x2 := body[i-1].Position.X;
- y2 := body[i-1].Position.Y;;
- if(body[i].Position.X-18 > windowWidth) then
- begin
- x2 := -20;
- end
- else if(body[i].Position.X-18 < -20) then
- begin
- x2 := windowWidth;
- end;
- body[i].MoveTo(x2,y2);
- end;
- if(x-18 > windowWidth) then
- begin
- x := -20;
- end
- else if(x-18 < -20) then
- begin
- x := windowWidth;
- end;
- body[1].MoveTo(x-18,y-18);
- x := x + kx;
- y := y + ky;
- snake.MoveTo(x-18,y-18);
- sleep(200);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement