Приложения________________________________________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