From 035ed5abd5653d74a3ec7476b0be9302069b82e6 Mon Sep 17 00:00:00 2001 From: Greg Gauthier Date: Sun, 6 Apr 2025 22:37:07 +0100 Subject: [PATCH] added number guesser iterations --- src/debug1.a68 | 11 +++++++++++ src/guess.a68 | 24 ++++++++++++++++++++++++ src/guess2.a68 | 25 +++++++++++++++++++++++++ src/guess3.a68 | 27 +++++++++++++++++++++++++++ src/guess4.a68 | 27 +++++++++++++++++++++++++++ src/guess5.a68 | 23 +++++++++++++++++++++++ 6 files changed, 137 insertions(+) create mode 100644 src/debug1.a68 create mode 100644 src/guess.a68 create mode 100644 src/guess2.a68 create mode 100644 src/guess3.a68 create mode 100644 src/guess4.a68 create mode 100644 src/guess5.a68 diff --git a/src/debug1.a68 b/src/debug1.a68 new file mode 100644 index 0000000..3026b02 --- /dev/null +++ b/src/debug1.a68 @@ -0,0 +1,11 @@ +BEGIN + REAL seed_time = seconds; + INT seed = ENTIER(seed_time); + first random(seed); + REAL raw_random = next random; + INT random_number = ENTIER(raw_random * 100.0) + 1; + print(("seed time : ", seed_time, newline)); + print(("seed : ", seed, newline)); + print(("raw random : ", raw_random, newline)); + print(("random number: ", random_number, newline)) +END \ No newline at end of file diff --git a/src/guess.a68 b/src/guess.a68 new file mode 100644 index 0000000..a317866 --- /dev/null +++ b/src/guess.a68 @@ -0,0 +1,24 @@ +BEGIN + on logical file end (stand in, + (REF FILE f) BOOL: (print(("Goodbye!",new line));stop)); + + first random(ENTIER(seconds)); # Seed with current seconds # + INT random_number = ENTIER (next random * 100.0) + 1; + + print(("the secret number is",random_number,new line)); + + print("guess a number: "); + WHILE + INT guess = read int; + IF guess < random_number THEN + print("too low, try again: "); + TRUE + ELIF guess > random_number THEN + print("too high, try again: "); + TRUE + ELSE + print(("that's right",new line)); + FALSE + FI + DO SKIP OD +END \ No newline at end of file diff --git a/src/guess2.a68 b/src/guess2.a68 new file mode 100644 index 0000000..859ad29 --- /dev/null +++ b/src/guess2.a68 @@ -0,0 +1,25 @@ +BEGIN + on logical file end (stand in, + (REF FILE f) BOOL: (print(("Goodbye!",new line));stop)); + + first random(ENTIER(local time)); # Wall-clock seconds # + INT random_number = ENTIER(next random * 100.0) + 1; + + print(("seed: ", ENTIER(local time), newline)); # Debug # + print(("the secret number is", random_number, newline)); + + print("guess a number: "); + WHILE + INT guess = read int; + IF guess < random_number THEN + print("too low, try again: "); + TRUE + ELIF guess > random_number THEN + print("too high, try again: "); + TRUE + ELSE + print(("that's right",new line)); + FALSE + FI + DO SKIP OD +END \ No newline at end of file diff --git a/src/guess3.a68 b/src/guess3.a68 new file mode 100644 index 0000000..5f44764 --- /dev/null +++ b/src/guess3.a68 @@ -0,0 +1,27 @@ +BEGIN + on logical file end (stand in, + (REF FILE f) BOOL: (print(("Goodbye!",new line));stop)); + + LONG REAL lt = local time; # Get wall-clock time # + INT seed = ENTIER lt; # Convert to integer # + first random(seed); # Seed PRNG # + INT random_number = ENTIER(next random * 100.0) + 1; + + print(("seed: ", seed, newline)); + print(("the secret number is", random_number, newline)); + + print("guess a number: "); + WHILE + INT guess = read int; + IF guess < random_number THEN + print("too low, try again: "); + TRUE + ELIF guess > random_number THEN + print("too high, try again: "); + TRUE + ELSE + print(("that's right",new line)); + FALSE + FI + DO SKIP OD +END \ No newline at end of file diff --git a/src/guess4.a68 b/src/guess4.a68 new file mode 100644 index 0000000..a513018 --- /dev/null +++ b/src/guess4.a68 @@ -0,0 +1,27 @@ +BEGIN + on logical file end (stand in, + (REF FILE f) BOOL: (print(("Goodbye!",new line));stop)); + + LONG REAL lt = (utc time()); # Get wall-clock time # + INT seed = SHORTEN ENTIER lt; # Convert LONG REAL to LONG INT, then INT # + first random(seed); # Seed PRNG # + INT random_number = ENTIER(next random * 100.0) + 1; + + print(("seed: ", seed, newline)); + print(("the secret number is", random_number, newline)); + + print("guess a number: "); + WHILE + INT guess = read int; + IF guess < random_number THEN + print("too low, try again: "); + TRUE + ELIF guess > random_number THEN + print("too high, try again: "); + TRUE + ELSE + print(("that's right",newline)); + FALSE + FI + DO SKIP OD +END \ No newline at end of file diff --git a/src/guess5.a68 b/src/guess5.a68 new file mode 100644 index 0000000..dfd00f2 --- /dev/null +++ b/src/guess5.a68 @@ -0,0 +1,23 @@ +BEGIN + on logical file end (stand in, + (REF FILE f) BOOL: (print(("Goodbye!",new line));stop)); + + INT random_number = ENTIER(next random * 100.0) + 1; # Generate directly # + + print(("the secret number is", random_number, newline)); + + print("guess a number: "); + WHILE + INT guess = read int; + IF guess < random_number THEN + print("too low, try again: "); + TRUE + ELIF guess > random_number THEN + print("too high, try again: "); + TRUE + ELSE + print(("that's right",new line)); + FALSE + FI + DO SKIP OD +END \ No newline at end of file