Prolog延迟执行文本

时间:2016-07-15 19:13:03

标签: prolog swi-prolog

我准备在Prolog写一个基于文本的冒险游戏,因此我有大量的写作线索。我想知道我是否可以减慢文本的输出处理速度。想象一下以下场景:

我有一个可以打印的文本块A,之后我希望延迟2秒。 因此,文本块B在2秒后打印,没有: - 登录Prolog。

我的第一个想法是编写一个循环,将当前时间与当前时间+ 2秒进行比较,但我无法摆脱: - 符号。

不幸的是;我是Prolog的新手,我对线程处理没有任何线索。

该陈述可能有用,但根本不起作用:

delayText([H|T]) :-
   put_char(H),
   flush_output,
   sleep(0.1),
   delayText(T).
delayText([]).

冲洗输出和睡眠似乎都不起作用。

我在Eclipse中使用ProDT。 提前致谢, 克里斯。

1 个答案:

答案 0 :(得分:0)

我不确定你想要如何实现游戏的写作,但问题中示例代码中使用的sleep/1可以与简单的写一起使用,如下所示: / p>

delayText([]).
delayText([H|T]) :-
   write(H),
   sleep(1),        % Time in seconds
   delayText(T).