Как отключить" true "и" false " выходы в прологе?

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

единственная проблема заключается в том, что я не могу печатать текст на экране без "true" и "false" значения, чтобы появиться, а также.

например, если я попробую что-то вроде:

take(desk) :- write('This thing is way too heavy for me to carry!').

здесь take является предикатом одного места и desk имя, которое я получаю в качестве вывода:

?- take(desk).
   This thing is way too heavy for me to carry!
   true.

как я могу избавиться от этого "true" или "false" выходы?

просто чтобы упомянуть, что я также пытался с format/1 один предикат места для простого вывода текста, а также format/2 два предиката места (когда я хочу вывести имя переменной), но это дает точно такую же проблему.

Я тоже видел ответ но, во-первых, это недостаточно подробно (по крайней мере, не для кого-то вроде меня), а во-вторых, я надеюсь, что в глубине души есть более простой способ сделать это.

и наконец, я использую SWI-Prolog.

спасибо.

1 ответов


упрощенным методом было бы создать немного REPL (чтение, оценка, цикл печати) самостоятельно. Что-то вроде этого:--11-->

game :-
    repeat,
    write('> '),
    read(X),
    call(X),
    fail.

это просто предложит и выполнит все, что вы вводите в командной строке. В сочетании с вашим take факт (и еще я добавила Для наглядности):

take(desk) :- write('This thing is way too heavy for me to carry!'), nl.
take(chair) :- write('This is easier to carry.'), nl.

вы получите:

?- game.
> take(desk).
This thing is way too heavy for me to carry!
> take(chair).
This is easier to carry.
>

вы не получите true или false, потому что game цель не решается, пока вы не выйдете из цикла каким-то образом. Вы можно добавить проверки для quit или bye или что угодно, чтобы выйти из game петли. Ctrl-C или Ctrl-D также можно использовать для прерывания цикла. Вам может потребоваться добавить некоторые другие "функции", чтобы заставить его работать по вашим потребностям или вкусу.