Prolog 序言地牢游戏和如何阻止的东西

Prolog 序言地牢游戏和如何阻止的东西,prolog,Prolog,所以我正在制作一个地牢益智游戏,我把房间连接起来,我设置了怪物和杀死它们的规则,但我没有意识到我可以绕过怪物,不与他战斗就进入下一个房间。这里有一些规则 alive(skeleton). path(room1,s,room26). path(room26,n,room1). path(room26,w,room27). path(room27,e,room26). path(room27,s,room28):-alive(skeleton). path(room28,n,room27). k

所以我正在制作一个地牢益智游戏,我把房间连接起来,我设置了怪物和杀死它们的规则,但我没有意识到我可以绕过怪物,不与他战斗就进入下一个房间。这里有一些规则

alive(skeleton).

path(room1,s,room26).
path(room26,n,room1).
path(room26,w,room27).
path(room27,e,room26).
path(room27,s,room28):-alive(skeleton).
path(room28,n,room27).

kill :-
        i_am_at(room27),
        at(sword, in_hand),
        retract(alive(skeleton)),
        write('You hack repeatedly at the skeleton'), nl,
        write('He screams in agony.'), nl,
        write('grats on killing it.'),
        nl.

好的,那么我如何为rooms建立一个规则呢?现在的一个规则是错误的,它与我想说的相反,只要没有事实证明,我就可以继续前进。

你需要将rooms中事物的存在分离成一个单独的谓词。现在,实际上是将骨架与两个房间之间的路径相关联,而不是房间本身!你需要更多种类的事实。这可能有助于研究其他类似的基于文本的冒险游戏的实现。你可以在以下网站上找到三个例子:至少你可以玩得很开心——拖延自己的益智游戏的一个很好的借口:-这两个评论都很好,但直接回答你:你的意思是“不活骷髅”?您如何处理移动命令?我想你有一个谓语south或s的子句