Ответ в теме: Задача про гномов на рудниках Грендальфа

      Комментарии к записи Ответ в теме: Задача про гномов на рудниках Грендальфа отключены
#1847

Если интерпретатор выдает лишь предупреждения, то код должен запускаться.
В Turbo Prolog есть отладчик, попробуйте его использовать чтобы найти точку, в которой останавливается программа (если она запускается).

The variable is only used once

Интерпретатор предупреждает о том, что переменной дано имя, но она не используется. Устраняется такое предупреждение введением анонимной переменной (символ подчеркивания).

stateafter(A,B,[A,B,C]).

Переменная C не используется, поэтому интерпретатор оповещает вас на случай если вы планировали что-то написать, но забыли. Во всех остальных фрагментах примерно тоже самое.
Исправляется так:
stateafter(A,B,[A,B,_C]).

Тут переменная _C является анонимной, предупреждение выдаваться не должно.

По второму предупреждению ничего сказать не могу. В качестве точки возникновения предупреждения вы указали фрагмент кода, который в исходном листинге находится внутри блока комментария. В нем никак не может быть ошибки, или код, который вы пытаетесь исполнять не соответствует тому, что вы выложили на блог.