service { protected shared int plays ; resource HiScore ; shared int record; shared string holder; html GuessDoc = Please guess a number between 0 and 99: ; html Again = That is not correct. Try a <[correction]> number: ; html Done = You got it, using <[trys]> guesses. ; html Record = That makes you the new record holder, beating the old record of <[old]> guesses.
Please enter your name for the hi-score list ; html HiScoreDoc = In <[plays]> plays of this game, the record holder is <[holder]> with <[record]> guesses. ; session Play() { int number, guesses, guess, r; number = random(100); writer (plays) { plays++; } show GuessDoc receive [guess=guess]; guesses = 1; while (guess != number) { if (guess > number) { show Again <[correction="lower"] receive [guess=guess]; } if (guess < number) { show Again <[correction="higher"] receive [guess=guess]; } guesses++; } reader (HiScore) r = record; if (r == 0 || r >= guesses) { string name; show Record <[old=r] receive [name=name]; writer (HiScore) { holder = name; record = guesses; } } exit Thank you for playing this exciting game; } session HiScore() { int p, r; string h; reader (plays) { p = plays; } reader (HiScore) { r = record; h = holder; } exit HiScoreDoc <[plays=p, holder=h, record=r]; } }