{ done 5 5 75 20 window &1e setattr cls randomize random 1000 * round 'mynum set } 'init define { 7 setattr 1 1 80 25 window cls } 'done define 0 'mynum define init "Try to guess my number! I will tell you if you are HIGH or LOW.\n" disp "Enter QUIT to exit.\n" disp "The number is between 0 and 1000.\n\n" disp { "Enter your guess: " turns disp " " disp disp read turns 1 + 'turns set dup upstr "QUIT" == { done 0 halt } if ->num round 'guess set "\n" disp } 'getguess define 0 'guess define 1 'turns define ,getguess { guess mynum == } ,getguess { guess 1000 > guess 0 < or { "The number is between 0 and 1000!\n" disp } { mynum guess > { "LOW\n" disp } { "HIGH\n" disp } ifelse } ifelse } until "\n\nYou guessed correctly, in " disp turns 1 - disp " turns.\n\n" disp "Press any key to quit..." disp { } { keypressed } { getkey drop } { } while getkey drop done