2016-07-15 8 views
1

Ich bin im Begriff, ein Text-basierte Abenteuerspiel in Prolog zu schreiben, daher habe ich Tonnen von Schreibmaschinenanweisungen. Ich habe mich gefragt, ob ich die Ausgabeverarbeitung meines Textes verlangsamen könnte. Stellen Sie sich folgendes Szenario vor:Prolog Verzögerung Ausführung des Textes

Ich habe einen Textblock A, der gedruckt wird, und ich möchte danach eine Verzögerung von 2 Sekunden. So Textblock B wird 2 Sekunden später gedruckt, ohne die: - Prolog anmelden.

Meine erste Idee war, eine Schleife zu schreiben, die die aktuelle Zeit mit currenttime + 2 s vergleicht, aber ich kann das: - Zeichen nicht loswerden.

Leider; Ich bin ein Neuling in Prolog und ich habe keine Ahnung von der Thread-Handhabung.

könnte Diese Aussage nützlich sein, aber es überhaupt nicht funktioniert:

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

Weder scheint bündig Ausgang noch Schlaf zu arbeiten.

Ich verwende ProDT in Eclipse. Vielen Dank im Voraus, Chris.

Antwort

0

Ich bin nicht sicher, wie Sie die Schrift für Ihr Spiel zu realisieren, aber sleep/1 wie im Beispielcode in Ihrer Frage verwendet werden, kann zusammen wie so mit einem einfachen Schreib verwendet werden:

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