Added example programs.
This commit is contained in:
95
examples/hilo.mod
Normal file
95
examples/hilo.mod
Normal file
@@ -0,0 +1,95 @@
|
||||
(* $Source$
|
||||
* $State$
|
||||
* $Revision$
|
||||
*)
|
||||
|
||||
MODULE HiLo;
|
||||
FROM InOut IMPORT WriteInt, WriteLn, WriteString, ReadString, ReadInt;
|
||||
FROM random IMPORT Uniform;
|
||||
|
||||
VAR
|
||||
buffer : ARRAY [0..32] OF CHAR;
|
||||
|
||||
PROCEDURE reads;
|
||||
BEGIN
|
||||
WriteString("> ");
|
||||
ReadString(buffer);
|
||||
END reads;
|
||||
|
||||
PROCEDURE game;
|
||||
VAR
|
||||
Number : INTEGER;
|
||||
Attempts : INTEGER;
|
||||
guess : INTEGER;
|
||||
finished : BOOLEAN;
|
||||
BEGIN
|
||||
WriteString("See if you can guess my number.");
|
||||
WriteLn;
|
||||
|
||||
Number := Uniform(0, 99);
|
||||
Attempts := 1;
|
||||
finished := FALSE;
|
||||
|
||||
WHILE NOT finished DO
|
||||
WriteLn;
|
||||
WriteString("> ");
|
||||
ReadInt(guess);
|
||||
|
||||
IF guess = Number THEN
|
||||
WriteLn;
|
||||
WriteString("You got it right in only ");
|
||||
WriteInt(Attempts, 0);
|
||||
WriteString(" ");
|
||||
IF Attempts = 1 THEN
|
||||
WriteString("go");
|
||||
ELSE
|
||||
WriteString("goes");
|
||||
END;
|
||||
WriteString("!");
|
||||
WriteLn;
|
||||
finished := TRUE;
|
||||
ELSIF guess < Number THEN
|
||||
WriteLn;
|
||||
WriteString("Try a bit higher.");
|
||||
WriteLn;
|
||||
ELSIF guess > Number THEN
|
||||
WriteLn;
|
||||
WriteString("Try a bit lower.");
|
||||
WriteLn;
|
||||
END;
|
||||
|
||||
Attempts := Attempts + 1;
|
||||
END;
|
||||
END game;
|
||||
|
||||
VAR
|
||||
finished : BOOLEAN;
|
||||
BEGIN
|
||||
WriteLn;
|
||||
WriteString("Hi there! Before we start, what is your name?");
|
||||
WriteLn;
|
||||
reads;
|
||||
WriteLn;
|
||||
WriteString("Hello, ");
|
||||
WriteString(buffer);
|
||||
WriteString("! ");
|
||||
|
||||
finished := FALSE;
|
||||
WHILE NOT finished DO
|
||||
game;
|
||||
WriteLn;
|
||||
WriteString("Would you like another go?");
|
||||
WriteLn;
|
||||
reads;
|
||||
|
||||
IF (buffer[0] = 'n') OR (buffer[0] = 'N') THEN
|
||||
finished := TRUE;
|
||||
WriteLn;
|
||||
WriteString("Thanks for playing --- goodbye!");
|
||||
WriteLn;
|
||||
ELSE
|
||||
WriteLn;
|
||||
WriteString("Excellent! ");
|
||||
END;
|
||||
END;
|
||||
END HiLo.
|
||||
Reference in New Issue
Block a user