Управление клавишами в паскаль - Pascal ABC

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

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

В общем нужно составить программу,где два шарика управляются различными клавишами в четырех направлениях.Новичок в этом деле,помогите пожалуйста.

Решение задачи: «Управление клавишами в паскаль»

textual
Листинг программы
uses graphABC,crt;
procedure Sharik(x,y,c:integer);
begin
setbrushcolor(c);
setpencolor(c);
circle(x,y,15);
end;
procedure menu;
begin
setbrushstyle(bsClear);
textout(100,0,'Красный шарик 1-вниз 2-вверх 3-вправо 4-влево');
textout(100,20,'Синий шарик 5-вниз 6-вверх 7-вправо 8-влево');
textout(230,40,'Выход - Esc');
end;
var x1,y1,x2,y2,d1,d2:integer;
    k:char;
begin
hidecursor;
x1:=windowwidth div 3;
y1:=windowheight div 2;
x2:=x1*2;
y2:=y1;
menu;
Sharik(x1,y1,clRed);
Sharik(x2,y2,clBlue);
lockdrawing;
repeat
if keypressed then
  begin
    k:=readkey;
    case k of
    #49:
      begin
       clearwindow;
       menu;
       if y1>windowheight-30 then d1:=0
       else d1:=10;
       y1:=y1+d1;
       Sharik(x1,y1,clRed);
       Sharik(x2,y2,clBlue);
       delay(100);
       redraw;
      end;
    #50:
      begin
        clearwindow ;
        menu;
        if y1<80 then d1:=0
        else d1:=10;
        y1:=y1-d1;
        Sharik(x1,y1,clRed);
        Sharik(x2,y2,clBlue);
        delay(100);
        redraw
       end;
    #51:
      begin
       clearwindow;
       menu;
       if x1>windowwidth-30 then d1:=0
       else d1:=10;
       x1:=x1+d1;
       Sharik(x1,y1,clRed);
       Sharik(x2,y2,clBlue);
       delay(100);
       redraw;
      end;
    #52:
      begin
       clearwindow;
       menu;
       if x1<30 then d1:=0
       else d1:=10;
       x1:=x1-d1;
       Sharik(x1,y1,clRed);
       Sharik(x2,y2,clBlue);
       delay(100);
       redraw;
      end;
    #53:
      begin
       clearwindow;
       menu;
       if y2>windowheight-30 then d2:=0
       else d2:=10;
       y2:=y2+d2;
       Sharik(x2,y2,clBlue);
       Sharik(x1,y1,clRed);
       delay(100);
       redraw;
      end;
    #54:
      begin
        clearwindow;
        menu;
        if y2<80 then d2:=0
        else d2:=10;
        y2:=y2-d2;
        Sharik(x2,y2,clBlue);
        Sharik(x1,y1,clRed);
        delay(100);
        redraw
       end;
    #55:
      begin
       clearwindow;
       menu;
       if x2>windowwidth-30 then d2:=0
       else d2:=10;
       x2:=x2+d2;
       Sharik(x2,y2,clBlue);
       Sharik(x1,y1,clRed);
       delay(100);
       redraw;
      end;
    #56:
      begin
       clearwindow;
       menu;
       if x2<30 then d2:=0
       else d2:=10;
       x2:=x2-d2;
       Sharik(x2,y2,clBlue);
       Sharik(x1,y1,clRed);
       delay(100);
       redraw;
      end;
    #27:exit;
    end;
  end;
until k=#27;
end.

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

Этот код написан на языке Pascal ABC и выполняет следующие действия:

  1. Устанавливает цвет кисти и текста в соответствующие цвета (clRed и clBlue).
  2. Вычисляет координаты точек для рисования шариков на основе координат мыши.
  3. Рисует круги с помощью функции circle.
  4. Выводит текст на экран с помощью функции textout.
  5. Проверяет, была ли нажата клавиша.
  6. Если была нажата клавиша, то считывает ее код и выполняет соответствующий действия.
  7. Повторяет цикл до тех пор, пока не будет нажата клавиша с кодом #27, что означает выход из программы.
  8. Показывает сообщение об окончании программы.

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


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

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

14   голосов , оценка 3.714 из 5