Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. Uses graphABC,ABCObjects;
  2.  
  3. var
  4. snake:CircleABC;
  5. body:array[1..10] of CircleABC;
  6. x,y,i,kx,ky,x2,y2:integer;
  7.  
  8.  
  9. procedure keyDown(key:integer);
  10. begin
  11. if(key = VK_Right) then
  12. begin
  13. kx := 40;
  14. ky := 0;
  15. end;
  16. if(key = VK_Left) then
  17. begin
  18. kx := -40;
  19. ky := 0;
  20. end;
  21. if(key = VK_Up) then
  22. begin
  23. ky := -40;
  24. kx := 0;
  25. end;
  26. if(key = VK_Down) then
  27. begin
  28. ky := 40;
  29. kx := 0;
  30. end;
  31. end;
  32.  
  33.  
  34.  
  35. begin
  36. for i:=0 to 16 do
  37. begin
  38. line(0+i*40,0,0+i*40,windowHeight);
  39. end;
  40.  
  41. for i:=0 to 12 do
  42. begin
  43. line(0,0+i*40,windowWidth,0+i*40);
  44. end;
  45.  
  46. x := 20;
  47. y := 20;
  48. snake := CircleABC.Create(x,y,18,clBlue);
  49.  
  50. for i:=1 to 10 do
  51. begin
  52. x2 := x;
  53. y2 := y+40*i;
  54. body[i] := CircleABC.Create(x2,y2,18,clBlack);
  55. end;
  56.  
  57.  
  58. onKeyDown := keyDown;
  59.  
  60. while(true) do
  61. begin
  62. for i:=10 downto 2 do
  63. begin
  64. x2 := body[i-1].Position.X;
  65. y2 := body[i-1].Position.Y;;
  66. if(body[i].Position.X-18 > windowWidth) then
  67. begin
  68. x2 := -20;
  69. end;
  70. body[i].MoveTo(x2,y2);
  71. end;
  72.  
  73. if(x-18 > windowWidth) then
  74. begin
  75. x := -20;
  76. end;
  77. body[1].MoveTo(x-18,y-18);
  78.  
  79. x := x + kx;
  80. y := y + ky;
  81.  
  82. snake.MoveTo(x-18,y-18);
  83. sleep(200);
  84. end;
  85.  
  86.  
  87. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement