Управление символом кодовой таблицы клавишами - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Проблема: требуется, чтобы персонаж игры ,,Лабиринт", который обозначен номером 2 в кодовой таблице, перемещался вверх, вниз, вправо, влево по нажатию клавиш. Буду благодарен за помощь. Программа(работа над лабиринтом не завершена):

Решение задачи: «Управление символом кодовой таблицы клавишами»

textual
Листинг программы
uses dos,crt;
procedure KursOff;{убрать курсор}
var reg:registers;
begin
with reg do
 begin
  AH:=1;{управление курсором}
  CH:=$20;{Убрать курсор}
 end;
intr($10,reg);
end;
procedure pole;
var i:byte;
begin
gotoXY(25,5);
write(#218);
for i:=26 to 54 do
 begin
  gotoXY(i,5);
  write(#196);
 end;
gotoXY(55,5);
write(#191);
gotoXY(25,20);
write(#192);
for i:=26 to 54 do
 begin
  gotoXY(i,20);
  write(#196);
 end;
gotoXY(55,20);
write(#217);
for i:=6 to 19 do
 begin
  gotoXY(25,i);
  write(#179);
  gotoXY(55,i);
  write(#179);
 end;
end;
var  c:char;
     x,y:byte;
begin
KursOff;
clrscr;
pole;
x:=40;
y:=13;
gotoXY(x,y);
write('X');
repeat
gotoXY(25,1);
write('Управление стрелками, выход Esc');
pole;
if keypressed then
 begin
  c:=readkey;
  if c=#0 then c:=readkey;
  case c of
  #75:begin
      clrscr;
      if x>26 then x:=x-1;
      gotoXY(x,y);
      write('X');
      end;
  #77:begin
      clrscr;
      if x<54 then x:=x+1;
      gotoXY(x,y);
      write('X');
      end;
  #72:begin
      clrscr;
      if y>6 then y:=y-1;
      gotoXY(x,y);
      write('X');
      end;
  #80:begin
      clrscr;
      if y<19 then y:=y+1;
      gotoXY(x,y);
      write('X');
      end;
  #27:exit;
  end;
 end;
until c=#27;
end.

Объяснение кода листинга программы

  1. Используется библиотека DOS и CRT для управления курсором и вывода символов на экран.
  2. Процедура KursOff используется для удаления курсора с экрана.
  3. Процедура pole используется для вывода символов на экран.
  4. Переменная reg содержит регистры процессора, которые используются для управления курсором.
  5. Переменная i используется для цикла вывода символов на экран.
  6. Переменные x и y используются для указания координат курсора на экране.
  7. Переменная c используется для хранения введенного символа.
  8. Процедура clrscr используется для очистки экрана.
  9. Процедура readkey используется для чтения введенного символа.
  10. Переменные x и y используются для указания координат, где должен быть выведен символ X.
  11. Процедура gotoXY используется для перемещения курсора на указанные координаты.
  12. Процедура write используется для вывода символа на экран.
  13. Процедура repeat используется для повторения цикла до тех пор, пока не будет введен определенный символ.
  14. Процедура case используется для обработки введенного символа в зависимости от его значения.
  15. Процедура exit используется для выхода из программы при вводе определенного символа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы