Приложения______________________________________255

DIM lst(l TO 32) AS INTEGER 'для списка возможных ходов DIM ptr AS INTEGER 'для количества возможных ходов DIM keys(l TO 2) AS STRING * 4 'для управляющих клавиш keys(l) = " qas": keys(2) = " pkl" DIM rvr(l TO 8, 1 TO 8) AS INTEGER 'ДЛЯ доски с фишками FOR k = 1 ТО 64 'очистка доски i = <k - 1) \ 8 + 1: j = (k - 1) MOD 8+1 rvr(i, j) = О NEXT k

rvr(4, 4) = 1: rvr(5, 5) = 1 'фишки первого игрока rvr(4, 5) = -1: rvr(5, 4) ='-1 'фишки второго игрока GOSUB showscore 'показ доски kpir = 1: kptr = 1 DO 'начало цикла игры

GOSUB getlst 'получение списка ходов IF ptr = О THEN

kpir = 3 - kpir: kptr =• 1 GOSUB getlst

IF ptr = 0 THEM EXIT DO 'выход по отсутствию ходов ELSE

k = 1st(kptr) 'номер квадрата для возможного хода i = (k - 1) \ 8 + 1: j = (k - 1) MOD 8+1 CIRCLE (26 * i'+ 38, 21 * j - 6) , 10, 3 + kr

'показ возможного хода key$ = ""

DO 'опрос клавиатуры key$ = LCASE$(INKEY$) kact = INSTRd, keys (kpir), key$) LOOP UNTIL kact > 1 IP kact > 2 THEN

LINE (26 * i + 26, 21 * j - 15)-(26 * i + 50, 21 * j + 4) , 8, BF

IF kact < 4 THEN 'выбор из списка

kptr = kptr + 1: IF kptr > ptr THEN kptr = 1 ELSE

kptr = kptr - 1: IF kptr < 1 THEN kptr = ptr END IF

ELSE 'исполнение хода GOSUB cling

kpir = 3 - kpir: kptr = 1 END IF END IP LOOP SLEEP END showscore:

'построение изображения доски с фишками и вывод счета игры kfrst = 0: kscnd = 0 FOR k = 1 ТО 64

GOSUB drsqr NEXT k

LOCATE 24, 17 PRINT USING "##&"; kfrst; " :";

PRINT kscnd;