Затем производится проверка расположения фишек, при котором коды фишек, расположенных справа от пятой позиции суммируются, а слева — вычитаются. При такой проверке выигрышу соответствует накопленный результат 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