Итак, у меня есть головоломка под названием CuFrog, которая состоит в заполнении куба 3x3x3 числом в каждой позиции, но с перепрыгиванием через позицию при переходе от одной к другой. Например, для сплющенного куба правильное положение справа от (1,1) на стороне 1 будет (3,1) на стороне 1.
Поэтому я использую для этого ограничения в Прологе и задаю домен каждой переменной (от 1 до 54), я сказал, что все они должны быть разными, и что для каждой позиции одна из позиций в наборе право-лево-вниз-вверх должно быть текущим значением такой позиции + 1.
Кроме того, я дал точку входа в головоломку, что означает, что я поставил цифру 1 уже на первую позицию.
Дело в том, что SICStus не находит мне ответа, когда я маркирую переменные. :( Кажется, я где-то пропускаю какое-то ограничение или, может быть, я что-то делаю не так. Кто-нибудь может помочь?
Спасибо.
length(Vars,54), domain(Vars,1,54), restriction_predicate(), asserta(clpfd:full_answer). %labelling([min],Vars) -- This is what I was doing.
- person Sidner   schedule 09.12.2012| ?-
. - person false   schedule 09.12.2012