Приложения_____________ 259
ptr = ptr + 1 lst<ptr) = k
EXIT FOR END IP NEXT kd END IF NEXT k RETURN chng:
k = Ist(kptr)
i = (k - 1) \ 8 + 1: j = (k - 1) MOD 8+1 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 rvr(i, j) = kr GOSUB showscore RETURN chck:
ii = i: id = dij (kd) jj = j: jd = -dij(kd + 2) ok% = 0: knext = 0 DO
ii = ii + id: IF ii < 1 OR ii > 8 THEN EXIT DO JJ = JJ + Jd: IF jj < 1 OR jj > 8 THEN EXIT DO tempt = rvr(ii, jj) IF temp% = 0 THEN
EXIT DO ELSE
IF tempt = -kr THEN
knext = 1 ELSE
IF knext = 1 THEN ok% = 1 EXIT DO END IF END IF LOOP RETURN
getrank: 'оценка эффективности ходов компьютера FOR kz = 1 ТО ptr k = Ist(kz) ik = 1: jk = 1
i = (k - 1) \ 8 + 1: j = (k - 1) MOD 8+1 ir = i: IF ir > 4 THEN ir = 9 - ir: ik = 8 jr = j: IF jr > 4 THEN jr = 9 - jr: jk = 8 krank = 8 - (ir + jr) 'оценка эффективности позиции IF rvr(ifc, jk) <> kr THEN 'проверка ближайшего угла IF ir = 2 OR jr = 2 THEN krank = -krank
' эффективность отрицательная