Затем производится проверка расположения фишек, при котором коды фишек, расположенных справа от пятой позиции суммируются, а слева — вычитаются. При такой проверке выигрышу соответствует накопленный результат 8. В случае выигрыша на экран выводится сообщение и выполняется команда выхода из цикла.

3% = 0 'проверка на выигрыш FOR i% = 1 ТО 4

j% = j% - Arrows(i%) + Arrows(10 - i%) NEXT it IF j% > 7 THEN 'сообщение о выигрыше и выход из цикла

LOCATE 11, 30: PRINT "Ура!!! Вы выиграли!"

EXIT DO END IF

При продолжении игры проверяются возможности перестановки фишек. Если перестановка фишки слева или справа от пустышки возможна, то запоминается ее позиция Left% или Right%, иначе числовое значение соответствующей позиции остается нулевым.

Left% =0: i% = Empty% - 1

'проверка возможности хода слева IF i% > О THEN

IF Arrows(i%) > О THEN

Left% •= i% ELSE

i% = i% - 1

IF i% > 0 THEN IF Arrows(i%) > 0 THEN Left% = i% END IF END IF Right» =0: i% = Empty% + 1

'проверка возможности хода справа IF i% < 10 THEN

IF Arrows(i%) < 0 THEN

Right% = i% ELSE

i% = i% + 1

IF i% < 10 THEN IF Arrows(i%) < 0 THEN Right% = i% END IF

Затем проверяется возможность очередного хода. Если оба числовых значения позиций переставляемых фишек (Left% и Right%) нулевые, то выдается сообщение о проигрыше и выполняется команда выхода из цикла.

IF Left% + Right% == 0 THEN LOCATE 11, 30

PRINT "Увы, Вы проиграли..." EXIT DO

В противном случае проверяется возможность выбора хода. Если возможность выбора есть, то играющему предлагается вариант хода по случайному выбору, иначе назначается единственный вариант.

ELSE

IF Left% * Right% > 0 THEN

'проверка возможности выбора хода q% = -1 IF (TIMER MOD 2) = 0 THEN Var% = 1 ELSE Var% = -1