- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
// 2-ая часть
repeat
repeat
dir:=random(4);
until not (dir in s);
s:=s+[dir];
if (Maze[x + dx[dir]][y + dy[dir]] and 16) <> 0 then // Если сосед не в очереди?
begin
Push(x + dx[dir],y + dy[dir]);
Maze[x + dx[dir]][y + dy[dir]] := Maze[x + dx[dir]][y + dy[dir]] and not 16; // Метим как "в очереди"
end;
until (0 in s) and (1 in s) and (2 in s) and (3 in s);
InvertDraw;
end;
maze[1][1]:=maze[1][1] and not 1; // Делаем проход слева вверху
maze[SizeX-2][SizeY-2]:= maze[SizeX-2][SizeY-2] and not 2; // Делаем проход справа внизу
InvertDraw;
end;
procedure GraphCHK; { Подключение модуля Graph }
var Gd,Gm:smallint;
begin
Gd:=VGA;
Gm:=VGAHi;
InitGraph(Gd,Gm,'');
if GraphResult <> grOk then
begin
write('Ошибка');
halt(1);
end;
end;
begin
GraphCHK;
InitMaze;
readln();
end.
Собственно 2-ая часть. Ну как обычно, Ctrl+C + Ctrl+V к первой, ничё сложного
Комментарии (0) RSS
Добавить комментарий