Организовать перемещение буквы вдоль определенной координаты при нажатии клавиш - PascalABC.NET

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

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

Всем привет, как организовать перемещение буквы вдоль определенной координаты при нажатии клавиш? Буквы я с помощья оператора "Line" нарисовал, а как перемещать их не доходит.

Решение задачи: «Организовать перемещение буквы вдоль определенной координаты при нажатии клавиш»

textual
Листинг программы
  1. uses graphABC;
  2. var x,y:integer;
  3.     f:boolean;
  4. procedure K(n:integer);
  5. begin
  6. Line(x+10*n,y+20*n,x+20*n,y+10*n); //Буква "К"
  7. Line(x+20*n,y+10*n,x+40*n,y+10*n);
  8. Line(x+40*n,y+10*n,x+30*n,y+20*n);
  9. Line(x+10*n,y+20*n,x+30*n,y+20*n);
  10. Line(x+30*n,y+20*n,x+30*n,y+50*n);
  11. Line(x+30*n,y+50*n,x+60*n,y+20*n);
  12. Line(x+60*n,y+20*n,x+80*n,y+20*n);
  13. Line(x+80*n,y+20*n,x+40*n,y+60*n);
  14. Line(x+40*n,y+60*n,x+80*n,y+100*n);
  15. Line(x+80*n,y+100*n,x+60*n,y+100*n);
  16. Line(x+60*n,y+100*n,x+30*n,y+70*n);
  17. Line(x+30*n,y+70*n,x+30*n,y+100*n);
  18. Line(x+30*n,y+100*n,x+10*n,y+100*n);
  19. Line(x+10*n,y+100*n,x+10*n,y+20*n);
  20. Line(x+40*n,y+10*n,x+40*n,y+40*n);
  21. Line(x+40*n,y+80*n,x+40*n,y+90*n);
  22. Line(x+40*n,y+90*n,x+30*n,y+100*n);
  23. Line(x+60*n,y+20*n,x+70*n,y+10*n);
  24. Line(x+70*n,y+10*n,x+90*n,y+10*n);
  25. Line(x+90*n,y+10*n,x+80*n,y+20*n);
  26. Line(x+80*n,y+100*n,x+90*n,y+90*n);
  27. Line(x+90*n,y+90*n,x+50*n,y+50*n);
  28. end;
  29. procedure KeyDown(key:integer);
  30. begin
  31. case key of
  32. VK_Right:x:=x+10;
  33. VK_Left: x:=x-10;
  34. VK_Up:   y:=y-10;
  35. VK_Down: y:=y+10;
  36. else f:=false;
  37. end;
  38. end;
  39. var n:integer;
  40. begin
  41. f:=true;
  42. repeat
  43. write('Введите число от 3 до 10: ');
  44. readln(n); //Масштаб
  45. until n in [3..10];
  46. SetWindowSize (250*n,150*n); //Размер окна
  47. x:=0;
  48. y:=0;
  49. lockdrawing;
  50. repeat
  51. clearwindow;
  52. onkeydown:=KeyDown;
  53. K(n);
  54. sleep(50);
  55. redraw;
  56. until not f;
  57.  
  58. end.

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

  1. В начале кода объявляются переменные x, y и f типа integer.
  2. Далее определена процедура K, которая рисует букву К заданного размера в заданной точке.
  3. Следующая процедура KeyDown обрабатывает нажатия клавиш.
  4. Затем определена переменная n типа integer, которая используется для ввода масштаба буквы.
  5. Код устанавливает размер окна в соответствии с введенным масштабом.
  6. Затем устанавливаются начальные координаты x и y.
  7. Код входит в цикл, который повторяется до тех пор, пока пользователь не введет некорректное значение масштаба.
  8. В этом цикле рисуется буква К и ожидается нажатие клавиши.
  9. Если нажата клавиша вправо, значение переменной x увеличивается на 10.
  10. Если нажата клавиша влево, значение переменной x уменьшается на 10.
  11. Если нажата клавиша вверх, значение переменной y уменьшается на 10.
  12. Если нажата клавиша вниз, значение переменной y увеличивается на 10.
  13. Если нажата клавиша, не соответствующая ни одному из вышеуказанных, то переменная f устанавливается в false.
  14. Если пользователь вводит некорректное значение масштаба, то цикл продолжается.
  15. Когда пользователь прекращает ввод, цикл завершается и программа завершается.

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


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

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

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

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

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

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