СРОЧНО!! НА КОДЕ PASKALABC Нужно сделать лабиринт который можно пройти клавишами лабиринт среднего размера и цвет стенок должен быть фиолетовый и при прохождении лабиринта выскакивала надпись YOU WIN !
Ответы
uses crt;
const
Width = 10;
Height = 10;
var
Maze: array[1..Height, 1..Width] of char;
PlayerX, PlayerY, ExitX, ExitY: integer;
Key: char;
begin
// Определяем размер лабиринта
ExitX := Width - 2;
ExitY := Height - 2;
// Создаем лабиринт
for var i := 1 to Height do
for var j := 1 to Width do
if (i = 1) or (j = 1) or (i = Height) or (j = Width) then
Maze[i, j] := '#'
else
Maze[i, j] := ' ';
// Устанавливаем начальные координаты игрока
PlayerX := 1;
PlayerY := 1;
// Основной цикл программы
repeat
// Очищаем экран
clrscr;
// Отображаем лабиринт
for var i := 1 to Height do
begin
for var j := 1 to Width do
begin
if (i = PlayerY) and (j = PlayerX) then
write('P')
else if (i = ExitY) and (j = ExitX) then
write('E')
else
write(Maze[i, j]);
end;
writeln;
end;
// Просим игрока выбрать направление движения
Key := readkey;
// Обрабатываем клавиши для перемещения игрока
case Key of
#72: // Стрелка вверх
begin
if Maze[PlayerY - 1, PlayerX] = ' ' then
PlayerY := PlayerY - 1;
end;
#80: // Стрелка вниз
begin
if Maze[PlayerY + 1, PlayerX] = ' ' then
PlayerY := PlayerY + 1;
end;
#75: // Стрелка влево
begin
if Maze[PlayerY, PlayerX - 1] = ' ' then
PlayerX := PlayerX - 1;
end;
#77: // Стрелка вправо
begin
if Maze[PlayerY, PlayerX + 1] = ' ' then
PlayerX := PlayerX + 1;
end;
end;
until (PlayerX = ExitX) and (PlayerY = ExitY);
// Пользователь выиграл
clrscr;
writeln('YOU WIN!');
readln;
end.