我目前正在SWI-Prolog中编写一个基于文本的小型冒险游戏。因此,用户必须给出诸如“goto(room)”或“goto room”之类的命令。
然而问题是你总是必须完全停止命令,即 “跳转(室)”。而不是“goto(room)。这不是非常用户友好。
我有一个谓词,它读取命令然后执行输入。如果没有,我怎么能自动添加句号(如果只有一个输入应该执行)?
提前致谢!
此致
沃尔克
答案 0 :(得分:1)
显然你正在使用read/1
或某些变体;这应该用于阅读有效的prolog术语(这就是你需要一个句号的原因)。
解决方案是自己解析输入(检查primitive char io,read utilities和io in general(您可能只需要读取实用程序))然后{{3它是一个术语。
此外,您可以使用DCG创建一个小型自然语言并使用;例如,用户可以只写goto room
而不是goto(room)
。
另一方面,我个人不认为必须跳过全站,如果他们不得不输入prolog术语,那将会更加用户友好。