Приложения________________________________________245
khead, = khead - 160: attr% = 14 CASE 1 'движение вправо khead = khead + 2 POKE khead, 220: POKE khead + 1, 6
'записать код и атрибут khead = khead + 2: attr% = 14 CASE 2 ' движение вниз
khead = khead + 160: attr% = 110 CASE 3 'движение влево khead = khead - 2 POKE khead, 220: POKE khead + 1, 6
'записать код и атрибут khead = khead - 2: attr% = 14 END SELECT
check% = PEEK(khead) 'проверка нового положения "головы" IF check% = 253 THEN
count% = PEEK(khead + 1) ELSE
IF check% > 200 OR khead < 160 THEN EXIT DO
'конец игры END IF POKE khead, 220: POKE khead + 1, attr%
'запись кода и атрибута"головы"
IF count% = О THEN 'если счетчик равен нулю, то code% = PEEK(ktail) 'чтение кода "хвоста" POKE ktail, 0: POKE ktail + 1, О
'старый хвост стерт
IF code% = 220 THEN 'если движение не вверх, то IF PEEK(ktail + 160) = 219 THEN
'если движение вниз, то ktail = ktail + 160 POKE ktail, 220
ELSE 'иначе IF PEEK(ktail - 2) = 220 THEM
'если движение влево, то ktail = ktail - 2 POKE ktail, 0: POKE ktail + 1, О ktail = ktail - 2
ELSE 'иначе если движение вправо, то ktail = ktail + 2 POKE ktail, 0: POKE ktail + 1, О ktail = ktail + 2 END IF END IF ELSE 'иначе
ktail = ktail - 160 END IF
ELSE 'иначе (если хвост не стирается) count% = count% - 1 'уменьшить значение счетчика IF count% = О THEN 'если счет окончен, то ввести новую пищу code% = 1 + 14 * RHD 'код пищи от 1 до 15 DO 'цикл выбора координат
kfood = 492 + 160 * CINT(2O * RND) + 4 * CINT(35 * BUD) LOOP UNTIL PEEK(kfood) < 200