Я читаю PDF-заметку об игре в Prolog
, которая является Hitori
, я пришел к следующему коду
abr([]).
abr([_]):-!.
abr([C, C|Cs]):- C \= 0, abr([C|Cs]).
abr([C1, C2|Cs]):- C1 \= C2, abr([C2|Cs]).
abs([]):- !.
abs([Cs|Css]):- abr(Cs), !, abs(Css).
ab(P):- transpose(C, Ccol), abs(C), abs(Ccol).
P
arg обозначает 2D-массив и его начальное значение
-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
-1 -1 -1 -1
Кроме того, P
будет каждый раз менять свое значение, чтобы можно было проверить, можно ли заменить элемент на zero
На самом деле я не смог получить вышеуказанный код, но ядумаю, он проверяет правильность изменения элемента на zero
Так что мой вопрос в том, что делает приведенный выше код?