Составить программу движения по экрану символа “*” под управлением некоторого набора клавиш - Free Pascal

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

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

Составить программу движения по экрану символа “*” под управлением некоторого набора клавиш.

Решение задачи: «Составить программу движения по экрану символа “*” под управлением некоторого набора клавиш»

textual
Листинг программы
  1. Uses Graph,wincrt;
  2. var
  3.   gd,gm,x,y,dx,dy,wx,wy:integer;
  4.   c:char;
  5. begin
  6.   randomize;
  7.   gd:=Detect;
  8.   InitGraph(gd,gm,'');
  9.   x:=GetMaxX div 2;
  10.   y:=GetMaxY div 2;
  11.   wx:=TextWidth('*');
  12.   wy:=TextHeight('*');
  13.   SetColor(White);
  14.   SetFillStyle(SolidFill,Black);
  15.   repeat
  16.     while not keypressed do begin
  17.       Bar(x,y,x+wx,y+wy);
  18.       x:=x+dx;
  19.       y:=y+dy;
  20.       if x>=GetMaxX-wx then dx:=-1;
  21.       if y>=GetMaxY-wy then dy:=-1;
  22.       if x<wx then dx:=1;
  23.       if y<wy then dy:=1;
  24.       OutTextXY(x,y,'*');
  25.       delay(10);
  26.     end;
  27.     c:=readkey;
  28.     Case  upcase(c) of
  29.       'Q':begin dx:=-1;dy:=-1;end;
  30.       'W':begin dx:=0;dy:=-1;end;
  31.       'E':begin dx:=1;dy:=-1;end;
  32.       'A':begin dx:=-1;dy:=0;end;
  33.       'S':begin dx:=0;dy:=1;end;
  34.       'D':begin dx:=1;dy:=0;end;
  35.       'Z':begin dx:=-1;dy:=1;end;
  36.       'C':begin dx:=1;dy:=1;end;
  37.    end;
  38.  
  39.   until c=#27;
  40.   closegraph;
  41. end.

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

  1. Создание графического окна и инициализация графики — Объявление переменных: gd, gm, x, y, dx, dy, wx, wy (для хранения координат, размеров символа и направления движения) — Вызов функции Detect для определения доступных графических режимов — Вызов функции InitGraph для инициализации графики с использованием первого доступного режима — Вычисление центра экрана как (GetMaxX div 2, GetMaxY div 2) — Вычисление ширины и высоты символа '*' с помощью функций TextWidth и TextHeight — Установка цвета и стиля заполнения на белый цвет с черным цветом
  2. Основной цикл программы — Проверка нажатий клавиш с помощью цикла while not keypressed do — Внутренний цикл while для рисования символа '' и перемещения его по экрану — Вызов функции Bar для рисования прямоугольника (символа '') — Увеличение x и y на dx и dy соответственно — Проверка границ экрана: если x или y выходят за пределы экрана, изменение значений dx и dy на противоположные — Рисование символа '*' в текущих координатах x, y с помощью функции OutTextXY — Задержка в 10 миллисекунд с помощью функции delay — Выход из внутреннего цикла while, если была нажата клавиша
  3. Обработка нажатий клавиш — Чтение нажатой клавиши с помощью функции readkey — Использование оператора upcase для преобразования нажатой клавиши в верхний регистр — Проверка значения c и присвоение новых значений dx и dy в зависимости от нажатой клавиши
  4. Окончание программы — Проверка значения c на равенство символу '#27' (это клавиша '') — Закрытие графического окна с помощью функции closegraph Вот список переменных и их значений: — gd: переменная для хранения номера доступного графического режима — gm: переменная для хранения номера доступного графического режима — x: переменная для хранения текущей координаты X символа '' — y: переменная для хранения текущей координаты Y символа '' — dx: переменная для хранения текущего изменения координаты X — dy: переменная для хранения текущего изменения координаты Y — wx: переменная для хранения ширины символа '' — wy: переменная для хранения высоты символа '' — c: переменная для хранения нажатой клавиши — Q: значение, присвоенное переменной c, если нажата клавиша 'Q' — W: значение, присвоенное переменной c, если нажата клавиша 'W' — E: значение, присвоенное переменной c, если нажата клавиша 'E' — A: значение, присвоенное переменной c, если нажата клавиша 'A' — S: значение, присвоенное переменной c, если нажата клавиша 'S' — D: значение, присвоенное переменной c, если нажата клавиша 'D' — Z: значение, присвоенное переменной c, если нажата клавиша 'Z' — C: значение, присвоенное переменной c, если нажата клавиша 'C'

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


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

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

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы