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