Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.65 KB | None | 0 0
  1. Program qwe;
  2.  
  3. uses GraphABC;
  4.  
  5. const
  6. SquareSize = 20; // размер квадрата, вроде в пикселях
  7. StartX = 20; // начальные значения
  8. StartY = 20;
  9.  
  10. procedure DrawStartField(const Size, SquareSize: Integer);
  11. var
  12. i, j: Integer;
  13. X, Y: Integer;
  14. begin
  15. Y := StartY;
  16. for i := 1 to Size do //этот цикл переходит на следующую строку
  17. begin
  18. X := StartX;
  19. for j := 1 to Size do // этот цикл будет отрисовывать одну строку
  20. begin
  21. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  22. FloodFill(X + 5, Y + 5,clGray); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  23. X := X + SquareSize + 5; // новая координата x, 5 - промежуток между квадратами
  24. end;
  25. Y := Y + SquareSize + 5; // как для x только y
  26. end;
  27.  
  28. X := (SquareSize + 5) * 4 - 5; // коорднаты центрального элемента, -5 т.к. перед первым элеентом нет отступа
  29. Y := (SquareSize + 5) * 4 - 5;
  30.  
  31. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  32. FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  33. end;
  34.  
  35. procedure GetWay(); // тут уже рисуем проходку
  36. var
  37. i, j: Integer;
  38. X, Y: Integer;
  39. begin
  40. // высчитываем x,y тк движени из центра
  41. X := (StartX + 5) * 4 - 5; // коорднаты центрального элемента, -5 т.к. перед первым элеентом нет отступа
  42. Y := (StartY + 5) * 4 - 5;
  43. for i := 1 to 3 do
  44. begin
  45. //Отрисовываем пройденную клетку
  46. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  47. FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  48. Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
  49. X := X - SquareSize - 5;
  50. Y := Y - SquareSize - 5;
  51. //Отрисовываем текущее местоположение
  52. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  53. FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  54. end;
  55. // возвращаемся в центр
  56. for i := 1 to 3 do
  57. begin
  58. //Отрисовываем пройденную клетку
  59. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  60. FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  61. Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
  62. X := X + SquareSize + 5;
  63. Y := Y + SquareSize + 5;
  64. //Отрисовываем текущее местоположение
  65. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  66. FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  67. end;
  68. //идем в другой угол
  69. for i := 1 to 3 do
  70. begin
  71. //Отрисовываем пройденную клетку
  72. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  73. FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  74. Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
  75. X := X - SquareSize - 5;
  76. Y := Y + SquareSize + 5;
  77. //Отрисовываем текущее местоположение
  78. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  79. FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  80. end;
  81. //возвращаемся из другого угла
  82. for i := 1 to 3 do
  83. begin
  84. //Отрисовываем пройденную клетку
  85. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  86. FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  87. Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
  88. X := X + SquareSize + 5;
  89. Y := Y - SquareSize - 5;
  90. //Отрисовываем текущее местоположение
  91. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  92. FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  93. end;
  94. //идем еще в другой угол
  95. for i := 1 to 3 do
  96. begin
  97. //Отрисовываем пройденную клетку
  98. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  99. FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  100. Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
  101. X := X + SquareSize + 5;
  102. Y := Y + SquareSize + 5;
  103. //Отрисовываем текущее местоположение
  104. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  105. FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  106. end;
  107. //возвращаемся из еще другого угла
  108. for i := 1 to 3 do
  109. begin
  110. //Отрисовываем пройденную клетку
  111. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  112. FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  113. Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
  114. X := X - SquareSize - 5;
  115. Y := Y - SquareSize - 5;
  116. //Отрисовываем текущее местоположение
  117. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  118. FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  119. end;
  120. //наконец идем в последний угол
  121. for i := 1 to 3 do
  122. begin
  123. //Отрисовываем пройденную клетку
  124. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  125. FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  126. Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
  127. X := X + SquareSize + 5;
  128. Y := Y - SquareSize - 5;
  129. //Отрисовываем текущее местоположение
  130. Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
  131. FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
  132. end;
  133. end;
  134.  
  135. begin
  136. DrawStartField(7, SquareSize);
  137. GetWay();
  138. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement