RETURN
drsqr: 'построение изображения поля доски с фишкой i = (k - 1) \ 8 + 1: з = (k - 1) MOD 8+1
LIME (26 * i + 26, 21 * j - 15)-(26 * i + 50, 21 * j + 4) , 8, BF temp% = rvr(i, j) IF temp% О О THEM icol = 3 + tempt
CIRCLE (26 * i + 38, 21 * j - 6), 10, icol PAINT (26 * i + 38, 21 * j - 6), icol
IF tempt > 0 THEN kfrst = kfrst + 1 ELSE kscnd = kscnd + 1 END IF RETURN
getlst: 'составление списка возможных ходов ptr =0: kr = 3 - 2 * kpir FOR k = 1 TO 64
i = (k - 1) \ 8 + 1: j = (k - 1) MOD 8+1 IF rvr(i, j) =0 THEN 'фишку ставят в пустую клетку FOR kd = 1 ТО 8 'цикл по направлениям GOSUB chck 'проверка по направлению IF ОК% = 1 THEN 'занесение в список ptr = ptr + 1 1st (ptr) = k
EXIT FOR 'достаточно одного направления END IF NEXT kd END IF NEXT k RETURN
chng: 'изменение состояния фишек k = Ist(kptr)
i = (k - 1) \ 8 + 1: j = (k - 1) MOD 8+1 rvr(i, j) = kr
FOR kd = 1 TO 8 'цикл по направлениям GOSUB chck 'проверка по направлению IF OK% = 1 THEN 'замена цвета фишек на свой DO
ii = ii - id: jj = jj - jd rvr(ii, jj) = kr LOOP UNTIL i = ii AND j = jj END IF NEXT kd
GOSUB showscore 'показ доски RETURN chck:
'проверка возможности хода для заданных позиции и направления ii = i: id = dij (kd) 33 = j: jd = -dij(kd + 2)
OKt = 0: knext = 0 ' признак первого шага DO 'шаги по дальности ii = ii + id: IF ii < 1 OR ii > 8 THEN EXIT DO
'границы по горизонтали 3J =° 33 + Jd: IF jj < 1 OR 33 > 8 THEN EXIT DO
'границы по вертикали temp% = rvr(ii, jj)