predicates
repeat
action(integer,string)
test(string)
goal
makewindow(1,7,7,"interaction window",0,2,11,43),
repeat,
shiftwindow(1),
clearwindow,
write("0. Enter 0 to end\n"),
write("1. Enter 1 to create a window and input\n a new string\n"),
write("2. Enter 2 to remove the window and text\n"),
write("3. Enter 3 to write to existing window\n\n"),
write("Selection? "),
readint(Int),nl,
action(Int,Text),
Int = 0,!, /* this cut will prevent backtracking even if you have not created a string */
test(Text).
clauses
action(0,"EXIT"):-!, /* this cut prevents Turbo Prolog from looking at other options. */
exit.
action(1,Str):-
existwindow(2),
write("You have a window that already exists.\n"),
write("Do you wish to clear it.(y,n) "),
readchar(Ans),!,
Ans='y', /* If you answer yes to the question this cut prevents the backtracking to the second action(1) clause. */
nl,
shiftwindow(2),
clearwindow,
write("Enter your string\n"),
readln(Str).
action(1,Str):- !, /* this cut prevents Turbo Prolog from looking at other options. */
nl,
makewindow(2,7,7," simple window control ", 12, 3, 12, 40),
write("Enter your string\n"),
readln(Str).
action(2,"window removed"):-
existwindow(2),
!, /* If the window has been input, this cut will prevent the second action(2) clause from executing */
shiftwindow(2),
removewindow,
clearwindow.
action(2,"ERROR"):-
clearwindow,
write("You must first create a window\n"),
write("Press any key to continue "),
readchar(_).
action(3,Str):-
existwindow(2),!,
shiftwindow(2),
clearwindow,
write("Enter your string\n"),
readln(Str).
action(3,Str):-
write("There is no window. Do you\n"),
write("want to create one?(y/n) "),
readchar(ANS),
ANS = 'y',nl,
makewindow(2,7,7," simple window control ",12,3,12,40),
write("Enter your string\n"),
readln(Str).
action(_,"ERROR"):-
write("not a valid option\n"),
write("press any key to continue").
test(Text):-
write(Text).
repeat.
repeat:-repeat.