NChange = 0 'Число возможных обменов на слития
ЦИКЛ I = 1
To 10 ’Перебор чисел различных фишек
ЦИКЛ НомерМаски = 1 To 16 'Номер маски
ЦИКЛ Y = 1 To (8 - MK(НомерМаски, 2) + 1)
ЦИКЛ X = 1 To (8 - MK(НомерМаски, 1) + 1)
Nmask = 0 'Совпадения с маской
ЦИКЛ My = 1 To MK(НомерМаски, 2)
ЦИКЛ Mx = 1 To MK(НомерМаски, 1)
ЕСЛИ (MS(НомерМаски, Mx, My) = 1) And (M(X + Mx - 1, Y + My - 1) = I) ТО
Nmask = Nmask + 1
КОНЕЦ ЕСЛИ
КОНЕЦ ЦИКЛА Mx
КОНЕЦ ЦИКЛА My
ЕСЛИ Nmask = 3 Then
NChange = NChange + 1 'Найденные 3 совпадения с маской
ПереходКМетке FindMoves
КОНЕЦ ЕСЛИ
КОНЕЦ ЦИКЛА X
КОНЕЦ ЦИКЛА Y
КОНЕЦ ЦИКЛА НомерМаски
КОНЕЦ ЦИКЛА I
МЕТКА_FindMoves:
Алгоритм анализа на обмены
1
2
1
2
3
I=5
X=1
Y=2
НомерМаски=1
MS(1,1,1)=1 и M(X',Y')=5 -> Nmask = 1
MS(1,1,2)=1 и M(X',Y')=5 -> Nmask = 2
MS(1,2,3)=1 и M(X',Y')=5 -> Nmask = 3
=>
NChange = 1