好的,我得到了这两个谓词 hangmangraphics

fail([]).

hangman:-
    getPhrase(Ans),
    !,
    write('Welcome to hangman.'),
    nl,
    fail(FailedList),
    graphics(FailedList), %<--- The call is made here.
    name(Ans,AnsList),
    makeBlanks(AnsList, BlankList),
    getGuess(AnsList,BlankList, FailedList).


graphics(FailedList):-
    length(FailedList, L),
    L == 0,
    write('-----------'), nl,
    write('|'), nl,
    write('|'), nl,
    write('|'), nl,
    write('|'), nl,
    write('|'), nl,
    write('|'), nl,
    write('|'), nl,
    write('|'), nl,
    write('/\'), nl.

为什么我会收到错误: ERROR: hangman/0: Undefined procedure: graphics/1
请注意,如果我将谓词 graphics 放在 hangman 中的注释中,我的程序运行良好。

最佳答案

 write('/\'), nl.

在最后一行,您使用 \' 转义结束引号。将其更改为:
 write('/\\'), nl.

顺便说一句:@Mog 在我看评论之前写了答案,我测试了它,现在它找到了 graphics/1。

关于prolog - SWI-Prolog 中的未定义过程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10799340/

10-11 22:55