【发布时间】:2020-01-27 22:07:29
【问题描述】:
我目前正在尝试在 prolog 中实现一种基于 Hilo 的游戏,其中基本功能基于设置一个秘密数字,并让用户/程序通过“太低”来猜测它的前进方向,或“太高”。
我的思考过程是这样的:在任何其他语言中,我都会这样想:
int secret_number = 50;
int guess = Console.ReadLine();
if(guess < secret_number) Console.WriteLine("Too low!");
else if(guess > secret_number) Console.WriteLine("Too high!");
else Console.WriteLine("You found the secret number!");
我在 Prolog 中重现此内容的尝试有所不同,但现在位于:
secret_number(85).
hilo(Guess):-
Guess < secret_number, write("Too low!"),
Guess > secret_number, write("Too high!"),
write("You found the secret number!").
?-hilo(85).
但是任何熟悉 prolog 的人都会看到这可能是多么不正确。首先,我们得到一个算术错误,说 secret_number 不是一个函数。为了解决这个问题,我尝试将secret_number 作为参数发送,而不是将其用作“全局”变量(正如我所看到的那样),但这似乎没有多大帮助。除此之外,我们也得到了一个目标(指令)失败,但我想在这种情况下这是理所当然的。
我意识到这是非常基本的,但在我看来,我们都必须从某个地方开始。任何和所有的帮助/指针将不胜感激!
【问题讨论】:
标签: prolog