Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program qwe;
- uses GraphABC;
- const
- SquareSize = 20; // размер квадрата, вроде в пикселях
- StartX = 20; // начальные значения
- StartY = 20;
- procedure DrawStartField(const Size, SquareSize: Integer);
- var
- i, j: Integer;
- X, Y: Integer;
- begin
- Y := StartY;
- for i := 1 to Size do //этот цикл переходит на следующую строку
- begin
- X := StartX;
- for j := 1 to Size do // этот цикл будет отрисовывать одну строку
- begin
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clGray); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- X := X + SquareSize + 5; // новая координата x, 5 - промежуток между квадратами
- end;
- Y := Y + SquareSize + 5; // как для x только y
- end;
- X := (SquareSize + 5) * 4 - 5; // коорднаты центрального элемента, -5 т.к. перед первым элеентом нет отступа
- Y := (SquareSize + 5) * 4 - 5;
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- end;
- procedure GetWay(); // тут уже рисуем проходку
- var
- i, j: Integer;
- X, Y: Integer;
- begin
- // высчитываем x,y тк движени из центра
- X := (StartX + 5) * 4 - 5; // коорднаты центрального элемента, -5 т.к. перед первым элеентом нет отступа
- Y := (StartY + 5) * 4 - 5;
- for i := 1 to 3 do
- begin
- //Отрисовываем пройденную клетку
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
- X := X - SquareSize - 5;
- Y := Y - SquareSize - 5;
- //Отрисовываем текущее местоположение
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- end;
- // возвращаемся в центр
- for i := 1 to 3 do
- begin
- //Отрисовываем пройденную клетку
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
- X := X + SquareSize + 5;
- Y := Y + SquareSize + 5;
- //Отрисовываем текущее местоположение
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- end;
- //идем в другой угол
- for i := 1 to 3 do
- begin
- //Отрисовываем пройденную клетку
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
- X := X - SquareSize - 5;
- Y := Y + SquareSize + 5;
- //Отрисовываем текущее местоположение
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- end;
- //возвращаемся из другого угла
- for i := 1 to 3 do
- begin
- //Отрисовываем пройденную клетку
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
- X := X + SquareSize + 5;
- Y := Y - SquareSize - 5;
- //Отрисовываем текущее местоположение
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- end;
- //идем еще в другой угол
- for i := 1 to 3 do
- begin
- //Отрисовываем пройденную клетку
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
- X := X + SquareSize + 5;
- Y := Y + SquareSize + 5;
- //Отрисовываем текущее местоположение
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- end;
- //возвращаемся из еще другого угла
- for i := 1 to 3 do
- begin
- //Отрисовываем пройденную клетку
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
- X := X - SquareSize - 5;
- Y := Y - SquareSize - 5;
- //Отрисовываем текущее местоположение
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- end;
- //наконец идем в последний угол
- for i := 1 to 3 do
- begin
- //Отрисовываем пройденную клетку
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clPurple); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- Sleep(700); // это в мс задаем время, чтобы было видно что рисуем)
- X := X + SquareSize + 5;
- Y := Y - SquareSize - 5;
- //Отрисовываем текущее местоположение
- Rectangle(X, Y, X + SquareSize, Y + SquareSize); // рисует квадрат
- FloodFill(X + 5, Y + 5,clWhite); // указывает на точку,и если эта тока внутри фигуры она заполняется цветом;
- end;
- end;
- begin
- DrawStartField(7, SquareSize);
- GetWay();
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement