Приложения______________________________________257

IF tempt = 0 THEN

EXIT DO ' выход по пустому полю ELSE

IF temp% = -kr THEN

knext = 1 'признак второго и последующих шагов ELSE

IF knext = 1 THEN OK% = 1 'ход возможен EXIT DO END IF END IF LOOP RETURN

Файл RVRS1.BAS

SCREEN 13

DEFINB I-K

DATA 1,1,0,-1,-1,-1,0,1,1,1

DIM dij (I TO 10)

FOR kd = 1 ТО 10 'приращения для 8 направлений READ temp% dij(kd) = temp% NEXT kd

DIM lst(l TO 32) AS INTEGER 'для списка возможных ходов DIM ptr AS INTEGER 'для количества возможных ходов DIM rank(l TO 32) AS INTEGER

'для ранжирования ходов компьютера DIM rvr(l TO 8, 1 ТО 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 THEN EXIT DO 'выход по отсутствию ходов ELSE

IF kpir = 1 THEN 'ход игрока key$ = ""

DO 'опрос клавиатуры 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$ = LCASE$(INKEY$) kact = INSTR(1, " qas", key$) IF kact > 2 THEN