Нарисовать точку, которая движется и отскакивает от границ экрана - 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
Объяснение кода листинга программы
- Задается размер экрана в 12 строк.
- Строка с описанием движения и отскока точки от границ экрана.
- Задаются начальные координаты точки (x=300, y=240).
- Задаются значения скорости движения точки по оси X и Y (dx=1, dy=1).
- Точка рисуется на экране в начальной точке (x=300, y=240).
- Запускается цикл, который выполняется 200000 раз.
- Код внутри цикла не выполняется, поэтому цикл служит для задержки выполнения программы.
- Точка рисуется на экране в начальной точке (x=300, y=240) без заливки (PSET(x,y),0).
- Проверяется условие: если x=0 или x=640, то dx меняется на -dx (точка будет двигаться в противоположном направлении).
- Проверяется условие: если y=0 или y=480, то dy меняется на -dy (точка будет двигаться в противоположном направлении).
- Проверяется условие: если y=180 и x>100 и x<300, то dy меняется на -dy (точка будет двигаться в противоположном направлении по вертикали).
- Проверяется условие: если x=300 и y>180 и y<230, то dx меняется на -dx (точка будет двигаться в противоположном направлении по горизонтали).
- Проверяется условие: если x=100 и y>180 и y<230, то dx меняется на -dx (точка будет двигаться в противоположном направлении по горизонтали).
- Проверяется условие: если y=230 и x>100 и x<300, то dy меняется на -dy (точка будет двигаться в противоположном направлении по вертикали).
- Значения x и y увеличиваются на dx и dy соответственно (точка перемещается на новое место).
- Цикл продолжается до тех пор, пока не будет выполнено одно из условий для изменения направления движения.
- Код повторяется с шага 5.
- Программа заканчивается, когда цикл завершится.
- Завершающая строка кода не имеет смысла в данном контексте, так как программа будет выполняться бесконечно, пока не будет остановлена пользователем.
- Возвращаемся к шагу 1 и начинаем цикл заново.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д