我准备在Prolog写一个基于文本的冒险游戏,因此我有大量的写作线索。我想知道我是否可以减慢文本的输出处理速度。想象一下以下场景:
我有一个可以打印的文本块A,之后我希望延迟2秒。 因此,文本块B在2秒后打印,没有: - 登录Prolog。
我的第一个想法是编写一个循环,将当前时间与当前时间+ 2秒进行比较,但我无法摆脱: - 符号。
不幸的是;我是Prolog的新手,我对线程处理没有任何线索。
该陈述可能有用,但根本不起作用:
delayText([H|T]) :-
put_char(H),
flush_output,
sleep(0.1),
delayText(T).
delayText([]).
冲洗输出和睡眠似乎都不起作用。
我在Eclipse中使用ProDT。 提前致谢, 克里斯。
答案 0 :(得分:0)
我不确定你想要如何实现游戏的写作,但问题中示例代码中使用的sleep/1
可以与简单的写一起使用,如下所示: / p>
delayText([]).
delayText([H|T]) :-
write(H),
sleep(1), % Time in seconds
delayText(T).