Нарисовать точку, которая движется и отскакивает от границ экрана - QBasic

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

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

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

Решение задачи: «Нарисовать точку, которая движется и отскакивает от границ экрана»

textual
Листинг программы
SCREEN 12
LINE (100, 180)-(300, 230), 14, BF
x = 300: y = 240
dx = 1: dy = 1
1: PSET (x, y), 14
FOR I = 1 TO 200000: NEXT I
PSET (x, y), 0
IF x = 0 OR x = 640 THEN dx = -dx
IF y = 0 OR y = 480 THEN dy = -dy
IF y = 180 AND x > 100 AND x < 300 THEN dy = -dy
IF x = 300 AND y > 180 AND y < 230 THEN dx = -dx
IF x = 100 AND y > 180 AND y < 230 THEN dx = -dx
IF y = 230 AND x > 100 AND x < 300 THEN dy = -dy
x = x + dx: y = y + dy
GOTO 1

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

  1. Задается размер экрана в 12 строк.
  2. Строка с описанием движения и отскока точки от границ экрана.
  3. Задаются начальные координаты точки (x=300, y=240).
  4. Задаются значения скорости движения точки по оси X и Y (dx=1, dy=1).
  5. Точка рисуется на экране в начальной точке (x=300, y=240).
  6. Запускается цикл, который выполняется 200000 раз.
  7. Код внутри цикла не выполняется, поэтому цикл служит для задержки выполнения программы.
  8. Точка рисуется на экране в начальной точке (x=300, y=240) без заливки (PSET(x,y),0).
  9. Проверяется условие: если x=0 или x=640, то dx меняется на -dx (точка будет двигаться в противоположном направлении).
  10. Проверяется условие: если y=0 или y=480, то dy меняется на -dy (точка будет двигаться в противоположном направлении).
  11. Проверяется условие: если y=180 и x>100 и x<300, то dy меняется на -dy (точка будет двигаться в противоположном направлении по вертикали).
  12. Проверяется условие: если x=300 и y>180 и y<230, то dx меняется на -dx (точка будет двигаться в противоположном направлении по горизонтали).
  13. Проверяется условие: если x=100 и y>180 и y<230, то dx меняется на -dx (точка будет двигаться в противоположном направлении по горизонтали).
  14. Проверяется условие: если y=230 и x>100 и x<300, то dy меняется на -dy (точка будет двигаться в противоположном направлении по вертикали).
  15. Значения x и y увеличиваются на dx и dy соответственно (точка перемещается на новое место).
  16. Цикл продолжается до тех пор, пока не будет выполнено одно из условий для изменения направления движения.
  17. Код повторяется с шага 5.
  18. Программа заканчивается, когда цикл завершится.
  19. Завершающая строка кода не имеет смысла в данном контексте, так как программа будет выполняться бесконечно, пока не будет остановлена пользователем.
  20. Возвращаемся к шагу 1 и начинаем цикл заново.

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


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

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

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