В первой части программы производится вывод на экран изображения коробочки и фишек.
DEFINT I-N
DIM Sqrs<16) AS INTEGER 'массив для кодов фишек
CLS
Тор$ = CHR$(201): Shelf$ = CHR$(199)
Bottom$ = CHR$(200): Wall$ = CHR$(186)
FOR I = 1 TO 3
Top$ = Top$ + CHR$<205) + CHR$(205) + CHR$(209) Shelf $ = Shelf $ + CHR$(196) + CHR$(196) + CHR$(197) Bottom$ = Bottom$ + CHR$(205) + CHR$(205) + CHR$(207) Wall$ = Wall$ + CHR$(32) + CHR$(32) + CHR$(179)
NEXT
Top$ = Top$ + CHR$(205) + CHR$(205) + CHR$(187)
Shelf$ = Shelf$ + CHR$(196) + CHR$(196) + CHR$(182)
Bottom$ = Bottom$ + CHR$(205) + CHR$(205) + CHR$(188)
Wall$ = Wall$ + CHR$(32) + CHR$(32) + CHR$ (186)
PRINT Top$: PRINT Wall$ 'построение рамки
FOR I = 2 TO 4
PRINT Shelf$: PRINT Wall$
NEXT
PRINT Bottom$;
Затем задается псевдослучайное расположение фишек.
FOR I = О ТО 14: Sqrs(I) =1+1: NEXT I
'формирование исходного состояния Sqrs<15) = 0 RANDOMIZE TIMER FOR IC = О ТО 13
JC = INT(RND * (15 - IC)) + IC
IF JC 0 IC THEN GOSUB ChSqrs NEXT
После этого производится подсчет количества беспорядков и в случае нечетности перестановка первой пары чисел в массиве.
GOSUB Mesh IF MC MOD 2 > О THEN
IC = 0: JC = 1: GOSUB ChSqrs END IF
Выбранная расстановка фишек выводится на экран и начинается цикл игры.
FOR I = О ТО 14: GOSUB ShSqr: NEXT I
'вывод исходного состояния DO 'начало цикла игры
По нажатию клавиши со стрелкой определяется направление сдвига или по нажатию клавиши q выход из цикла по желанию играющего.
DO: Кеу$ = INKEY$: LOOP UNTIL LEN(Key$) > О
'ввод с клавиатуры