END IF

FOR kd = 1 TO 8 'цикл по направлениям 3.1 = i: id = di](kd) 33 = 3: 3d = -di3(kd + 2)

ok% = 0: knext = 0 'признак первого шага DO

temp% = rvr(n, 33) IF temp% = 0 THEN

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

IF temp% = -kr THEN

knext = 1: ok% = ok% + 1

'подсчет чужих фишек по направлению ELSE

IF knext = 1 THEN krank = krank + ok%

'учет взятых фишек EXIT DO END IF END IF LOOP NEXT kd

IF kscnd = 1 THEN 'уточнение ранга в случае одной фишки FOR kp = 1 ТО 64

хр = (kp - 1) \ 8 + 1: зр = (kp - 1) MOD 8+1 IF rvrdp, 1p) < 0 THEN EXIT FOR NEXT kp IF ip = l THEN

3.3d = SGN(3p - 3) : ЭР = ЭР + i3d: 3=3- i:)d END IF IF DP = 3 THEM

l]d = SGNdp - l) : ip = lp + 3.3d: 1=1- l^d END IF IF lp + зр = l + з THEN

l3d = SGNdp - зр - l + 3) : зр = эр + 3.3d: 3=3- l:)d ip = л-р + i]d: 1=1- i^d END IF IF ip - зр = i - з THEN

i3d = SGNdp + ip - i - з) : ЗР = ЗР - i^d: 3 = 3 + i3d ip = ip + l;]d: 1=1- l^d END IF

IF ip * (9 - зр) * lp * (9 - lp) > 0 THEN IF з * (9-3) * i * (9 - 1) > 0 THEN

IF rvr(i, з) + rvrdp, зр) = 1 THEN krank = -8 END IF END IF END IF

rank(kz) = krank 'запись ранга в массив NEXT kz RETURN