Итак, я изучал Пролог, и чтобы проверить себя, я хотел решить одну загадку. Я думаю, что я довольно близко к решению этого, но я, кажется, делаю что-то не так. Кажется, мой предикат block/3
не вызывается.
возможно, это ошибка синтаксиса, или я делаю что-то, что не работает в Прологе. Я не вижу этого.
block/3
должен дать все возможные комбинации наборов в block/2
.
Я не уверен если это полностью актуально, но я включу цель головоломки:
Есть четыре куба с различной комбинацией четырех изображений на их лицах. (Kim, Lab, Hail и Com)
Цель состоит в том, чтобы выровнять кубы таким образом, чтобы при их объединении все стороны рядом друг с другом были одинаковыми. Так что вокруг каждого куба проходят четыре одинаковые строки, а затем две стороны, которые также должны совпадать.
Я написал программу, чтобы просто решить строки и не обращая внимания на ориентацию изображения и две стороны. Если это дает более одного ответа, это не должно давать слишком много для попытки вручную.
в любом случае, каким-то образом solve(X)
полностью игнорирует мой предикат block/3
. Я давно смотрю на это и не могу найти проблему.