Как сделать движущуюся змейку? - QBasic
Формулировка задачи:
Змейка должна состоять из линий и передвигаться с помощью того,что последняя линия гаснет и в то же время появляется новая впереди.
Помогите кто может.
Заранее спасибо
Решение задачи: «Как сделать движущуюся змейку?»
textual
Листинг программы
SCREEN 12 PAINT (5, 5), 15 sections = 10 xh = 50 yh = 100 WHILE xh < 640 AND INKEY$ = "" FOR i = 0 TO sections - 1 LINE (xh - 10 * i, yh)-(xh - 10 * i - 10, yh - 10), 6, BF LINE (xh - 2 - 10 * i, yh - 2)-(xh + 2 - 10 * i - 10, yh - 10 + 2), 4, BF NEXT i LINE (xh - 10 * sections, yh)-(xh - 10 * sections - 10, yh - 10), 15, BF xh = xh + 10 t = TIMER WHILE t = TIMER WEND WEND
Объяснение кода листинга программы
- Установка начального значения переменных:
SCREEN 12
- выбор экрана с разрешением 12 строк;PAINT (5, 5), 15
- очистка экрана и установка курсора в позицию (5,5), а также задание цвета 15;sections = 10
- установка числа секций змейки;xh = 50
иyh = 100
- установка начальной позиции змейки.
- Основной цикл программы:
- `WHILE xh < 640 AND INKEY$ = ``` - цикл будет выполняться, пока змейка не достигнет правой границы экрана и не будет нажата клавиша;
FOR i = 0 TO sections - 1
- цикл по секциям змейки;LINE (xh - 10 * i, yh)-(xh - 10 * i - 10, yh - 10), 6, BF
- рисование головы змейки;LINE (xh - 2 - 10 * i, yh - 2)-(xh + 2 - 10 * i - 10, yh - 10 + 2), 4, BF
- рисование тела змейки;LINE (xh - 10 * sections, yh)-(xh - 10 * sections - 10, yh - 10), 15, BF
- рисование хвоста змейки;xh = xh + 10
- перемещение змейки вправо;t = TIMER
- получение текущего времени;WHILE t = TIMER
- ожидание нажатия клавиши.
- Завершение программы:
WEND
- завершение внутреннего цикла;WEND
- завершение основного цикла программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д