Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
3
Task/Guess-the-number-With-feedback/00-META.yaml
Normal file
3
Task/Guess-the-number-With-feedback/00-META.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
from: http://rosettacode.org/wiki/Guess_the_number/With_feedback
|
||||
note: Games
|
||||
15
Task/Guess-the-number-With-feedback/00-TASK.txt
Normal file
15
Task/Guess-the-number-With-feedback/00-TASK.txt
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
;Task:
|
||||
Write a game (computer program) that follows the following rules:
|
||||
::* The computer chooses a number between given set limits.
|
||||
::* The player is asked for repeated guesses until the the target number is guessed correctly
|
||||
::* At each guess, the computer responds with whether the guess is:
|
||||
:::::* higher than the target,
|
||||
:::::* equal to the target,
|
||||
:::::* less than the target, or
|
||||
:::::* the input was inappropriate.
|
||||
|
||||
|
||||
;Related task:
|
||||
* [[Guess the number/With Feedback (Player)]]
|
||||
<br><br>
|
||||
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
V (target_min, target_max) = (1, 100)
|
||||
|
||||
print("Guess my target number that is between #. and #. (inclusive).\n".format(target_min, target_max))
|
||||
V target = random:(target_min..target_max)
|
||||
V (answer, i) = (target_min - 1, 0)
|
||||
L answer != target
|
||||
i++
|
||||
V txt = input(‘Your guess(#.): ’.format(i))
|
||||
X.try
|
||||
answer = Int(txt)
|
||||
X.catch ValueError
|
||||
print(‘ I don't understand your input of '#.' ?’.format(txt))
|
||||
L.continue
|
||||
I answer < target_min | answer > target_max
|
||||
print(‘ Out of range!’)
|
||||
L.continue
|
||||
I answer == target
|
||||
print(‘ Ye-Haw!!’)
|
||||
L.break
|
||||
I answer < target {print(‘ Too low.’)}
|
||||
I answer > target {print(‘ Too high.’)}
|
||||
|
||||
print("\nThanks for playing.")
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
# simple guess-the-number game #
|
||||
|
||||
main:(
|
||||
|
||||
BOOL valid input := TRUE;
|
||||
|
||||
# register an error handler so we can detect and recover from #
|
||||
# invalid input #
|
||||
on value error( stand in
|
||||
, ( REF FILE f )BOOL:
|
||||
BEGIN
|
||||
valid input := FALSE;
|
||||
TRUE
|
||||
END
|
||||
);
|
||||
|
||||
# construct a random integer between 1 and 100 #
|
||||
INT number = 1 + ROUND ( random * 99 );
|
||||
|
||||
print( ( "I'm thinking of a number between 1 and 100", newline ) );
|
||||
|
||||
# read the user's guesses until they guess correctly #
|
||||
# we give feedback so they can find the number using interval #
|
||||
# halving #
|
||||
WHILE
|
||||
print( ( "What do you think it is? " ) );
|
||||
INT guess;
|
||||
WHILE
|
||||
valid input := TRUE;
|
||||
read( ( guess, newline ) );
|
||||
NOT valid input
|
||||
DO
|
||||
print( ( "Please guess a number between 1 and 100", newline ) )
|
||||
OD;
|
||||
number /= guess
|
||||
DO
|
||||
IF number > guess
|
||||
THEN
|
||||
# the user's guess was too small #
|
||||
print( ( newline, "My number is higher than that", newline ) )
|
||||
ELSE
|
||||
# the user's guess was too large #
|
||||
print( ( newline, "My number is lower than that", newline ) )
|
||||
FI
|
||||
OD;
|
||||
print( ( "That's correct!", newline ) )
|
||||
)
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
# syntax: GAWK -f GUESS_THE_NUMBER_WITH_FEEDBACK.AWK
|
||||
BEGIN {
|
||||
L = 1
|
||||
H = 100
|
||||
srand()
|
||||
n = int(rand() * (H-L+1)) + 1
|
||||
printf("I am thinking of a number between %d and %d. Try to guess it.\n",L,H)
|
||||
while (1) {
|
||||
getline ans
|
||||
if (ans !~ /^[0-9]+$/) {
|
||||
print("Your input was not a number. Try again.")
|
||||
continue
|
||||
}
|
||||
if (n == ans) {
|
||||
print("Well done you.")
|
||||
break
|
||||
}
|
||||
if (n > ans) {
|
||||
print("Incorrect, your answer was too low. Try again.")
|
||||
continue
|
||||
}
|
||||
if (n < ans) {
|
||||
print("Incorrect, your answer was too high. Try again.")
|
||||
continue
|
||||
}
|
||||
}
|
||||
exit(0)
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
PROC Main()
|
||||
BYTE x,n,min=[1],max=[100]
|
||||
|
||||
PrintF("Try to guess a number %B-%B: ",min,max)
|
||||
x=Rand(max-min+1)+min
|
||||
DO
|
||||
n=InputB()
|
||||
IF n<min OR n>max THEN
|
||||
Print("The input is incorrect. Try again: ")
|
||||
ELSEIF n<x THEN
|
||||
Print("My number is higher. Try again: ")
|
||||
ELSEIF n>x THEN
|
||||
Print("My number is lower. Try again: ")
|
||||
ELSE
|
||||
PrintE("Well guessed!")
|
||||
EXIT
|
||||
FI
|
||||
OD
|
||||
RETURN
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
with Ada.Numerics.Discrete_Random;
|
||||
with Ada.Text_IO;
|
||||
procedure Guess_Number_Feedback is
|
||||
function Get_Int (Prompt : in String) return Integer is
|
||||
begin
|
||||
loop
|
||||
Ada.Text_IO.Put (Prompt);
|
||||
declare
|
||||
Response : constant String := Ada.Text_IO.Get_Line;
|
||||
begin
|
||||
if Response /= "" then
|
||||
return Integer'Value (Response);
|
||||
end if;
|
||||
exception
|
||||
when others =>
|
||||
Ada.Text_IO.Put_Line ("Invalid response, not an integer!");
|
||||
end;
|
||||
end loop;
|
||||
end Get_Int;
|
||||
procedure Guess_Number (Lower_Limit : Integer; Upper_Limit : Integer) is
|
||||
subtype Number is Integer range Lower_Limit .. Upper_Limit;
|
||||
package Number_RNG is new Ada.Numerics.Discrete_Random (Number);
|
||||
Generator : Number_RNG.Generator;
|
||||
My_Number : Number;
|
||||
Your_Guess : Integer;
|
||||
begin
|
||||
Number_RNG.Reset (Generator);
|
||||
My_Number := Number_RNG.Random (Generator);
|
||||
Ada.Text_IO.Put_Line ("Guess my number!");
|
||||
loop
|
||||
Your_Guess := Get_Int ("Your guess: ");
|
||||
exit when Your_Guess = My_Number;
|
||||
if Your_Guess > My_Number then
|
||||
Ada.Text_IO.Put_Line ("Wrong, too high!");
|
||||
else
|
||||
Ada.Text_IO.Put_Line ("Wrong, too low!");
|
||||
end if;
|
||||
end loop;
|
||||
Ada.Text_IO.Put_Line ("Well guessed!");
|
||||
end Guess_Number;
|
||||
Lower_Limit : Integer;
|
||||
Upper_Limit : Integer;
|
||||
begin
|
||||
loop
|
||||
Lower_Limit := Get_Int ("Lower Limit: ");
|
||||
Upper_Limit := Get_Int ("Upper Limit: ");
|
||||
exit when Lower_Limit < Upper_Limit;
|
||||
Ada.Text_IO.Put_Line ("Lower limit must be lower!");
|
||||
end loop;
|
||||
Guess_Number (Lower_Limit, Upper_Limit);
|
||||
end Guess_Number_Feedback;
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
-- defining the range of the number to be guessed
|
||||
property minLimit : 1
|
||||
property maxLimit : 100
|
||||
|
||||
on run
|
||||
-- define the number to be guessed
|
||||
set numberToGuess to (random number from minLimit to maxLimit)
|
||||
-- prepare a variable to store the user's answer
|
||||
set guessedNumber to missing value
|
||||
-- prepare a variable for feedback
|
||||
set tip to ""
|
||||
-- start a loop (will be exited by using "exit repeat" after a correct guess)
|
||||
repeat
|
||||
-- ask the user for his/her guess, the variable tip contains text after first guess only
|
||||
set usersChoice to (text returned of (display dialog "Guess the number between " & minLimit & " and " & maxLimit & " inclusive" & return & tip default answer "" buttons {"Check"} default button "Check"))
|
||||
-- try to convert the given answer to an integer and compare it the number to be guessed
|
||||
try
|
||||
set guessedNumber to usersChoice as integer
|
||||
if guessedNumber is greater than maxLimit or guessedNumber is less than minLimit then
|
||||
-- the user guessed a number outside the given range
|
||||
set tip to "(Tipp: Enter a number between " & minLimit & " and " & maxLimit & ")"
|
||||
else if guessedNumber is less than numberToGuess then
|
||||
-- the user guessed a number less than the correct number
|
||||
set tip to "(Tipp: The number is greater than " & guessedNumber & ")"
|
||||
else if guessedNumber is greater than numberToGuess then
|
||||
-- the user guessed a number greater than the correct number
|
||||
set tip to "(Tipp: The number is less than " & guessedNumber & ")"
|
||||
else if guessedNumber is equal to numberToGuess then
|
||||
-- the user guessed the correct number and gets informed
|
||||
display dialog "Well guessed! The number was " & numberToGuess buttons {"OK"} default button "OK"
|
||||
-- exit the loop (quits this application)
|
||||
exit repeat
|
||||
end if
|
||||
on error
|
||||
-- something went wrong, remind the user to enter a numeric value
|
||||
set tip to "(Tipp: Enter a number between " & minLimit & " and " & maxLimit & ")"
|
||||
end try
|
||||
end repeat
|
||||
end run
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
100 L% = 1
|
||||
110 U% = 10
|
||||
120 N% = RND(1) * (U% - L% + 1) + L%
|
||||
130 PRINT "A NUMBER FROM " L%;
|
||||
140 PRINT " TO " U%;
|
||||
150 PRINT ", CALLED A TARGET, HAS BEEN RANDOMLY CHOSEN."
|
||||
160 FOR Q = 0 TO 1 STEP 0
|
||||
170 INPUT "GUESS THE TARGET NUMBER: "; G%
|
||||
180 IF G% < L% OR G% > U% THEN PRINT "THE INPUT WAS INAPPROPRIATE."
|
||||
190 IF G% > N% THEN PRINT "THE GUESS WAS HIGHER THAN THE TARGET."
|
||||
200 IF G% < N% THEN PRINT "THE GUESS WAS LESS THAN THE TARGET."
|
||||
210 Q = G% = N%
|
||||
220 NEXT
|
||||
230 PRINT "THE GUESS WAS EQUAL TO THE TARGET."
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
n: random 1 10
|
||||
while ø [
|
||||
try? [
|
||||
num: to :integer input "Guess the number: " n
|
||||
case [num]
|
||||
when? [=n][print "\tWell Guessed! :)", exit]
|
||||
when? [>n][print "\tHigher than the target..."]
|
||||
when? [<n][print "\tLess than the target..."]
|
||||
else []
|
||||
]
|
||||
else -> print "\tInvalid input!"
|
||||
]
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
MinNum = 1
|
||||
MaxNum = 99999999999
|
||||
|
||||
Random, RandNum, %MinNum%, %MaxNum%
|
||||
Loop
|
||||
{
|
||||
InputBox, Guess, Number Guessing, Please enter a number between %MinNum% and %MaxNum%:,, 350, 130,,,,, %Guess%
|
||||
If ErrorLevel
|
||||
ExitApp
|
||||
If Guess Is Not Integer
|
||||
{
|
||||
MsgBox, 16, Error, Invalid guess.
|
||||
Continue
|
||||
}
|
||||
If Guess Not Between %MinNum% And %MaxNum%
|
||||
{
|
||||
MsgBox, 16, Error, Guess must be a number between %MinNum% and %MaxNum%.
|
||||
Continue
|
||||
}
|
||||
If A_Index = 1
|
||||
TotalTime = %A_TickCount%
|
||||
Tries = %A_Index%
|
||||
If Guess = %RandNum%
|
||||
Break
|
||||
If Guess < %RandNum%
|
||||
MsgBox, 64, Incorrect, The number guessed (%Guess%) was too low.
|
||||
If Guess > %RandNum%
|
||||
MsgBox, 64, Incorrect, The number guessed (%Guess%) was too high.
|
||||
}
|
||||
TotalTime := Round((A_TickCount - TotalTime) / 1000,1)
|
||||
MsgBox, 64, Correct, The number %RandNum% was guessed in %Tries% tries, which took %TotalTime% seconds.
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
Min = 5: Max = 15
|
||||
chosen = int(rand*(Max-Min+1)) + Min
|
||||
print "Guess a whole number between "+Min+" and "+Max
|
||||
do
|
||||
input "Enter your number " ,guess
|
||||
if guess < Min OR guess > Max then
|
||||
print "That was an invalid number"
|
||||
end
|
||||
else
|
||||
if guess < chosen then print "Sorry, your number was too low"
|
||||
if guess > chosen then print "Sorry, your number was too high"
|
||||
if guess = chosen then print "Well guessed!"
|
||||
end if
|
||||
until guess = chosen
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
Min% = 1
|
||||
Max% = 10
|
||||
chosen% = RND(Max%-Min%+1) + Min% - 1
|
||||
REPEAT
|
||||
PRINT "Guess a number between "; Min% " and " ;Max% ;
|
||||
INPUT ": " guess%
|
||||
CASE TRUE OF
|
||||
WHEN guess% < Min% OR guess% > Max%:
|
||||
PRINT "That was an invalid number"
|
||||
WHEN guess% < chosen%:
|
||||
PRINT "Sorry, your number was too low"
|
||||
WHEN guess% > chosen%:
|
||||
PRINT "Sorry, your number was too high"
|
||||
OTHERWISE:
|
||||
PRINT "Well guessed!"
|
||||
EXIT REPEAT
|
||||
ENDCASE
|
||||
UNTIL FALSE
|
||||
END
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
get "libhdr"
|
||||
static $( randstate = ? $)
|
||||
|
||||
let rand(min,max) = valof
|
||||
$( let x = ?
|
||||
let range = max-min
|
||||
let mask = 1
|
||||
while mask < range do mask := (mask << 1) | 1
|
||||
$( randstate := random(randstate)
|
||||
x := (randstate >> 6) & mask
|
||||
$) repeatuntil 0 <= x < range
|
||||
resultis x + min
|
||||
$)
|
||||
|
||||
let readguess(min,max) = valof
|
||||
$( let x = ?
|
||||
writes("Guess? ")
|
||||
x := readn()
|
||||
if min <= x < max then resultis x
|
||||
writes("Invalid input.*N")
|
||||
$) repeat
|
||||
|
||||
let play(min,max,secret) be
|
||||
$( let tries, guess = 0, ?
|
||||
$( guess := readguess(min,max)
|
||||
if guess < secret then writes("Too low!*N")
|
||||
if guess > secret then writes("Too high!*N")
|
||||
tries := tries + 1
|
||||
$) repeatuntil guess = secret
|
||||
writef("Correct! You guessed it in %N tries.*N", tries)
|
||||
$)
|
||||
|
||||
let start() be
|
||||
$( let min, max = ?, ?
|
||||
writes("Guess the number*N*N")
|
||||
writes("Random seed? ") ; randstate := readn()
|
||||
$( writes("Lower bound? ") ; min := readn()
|
||||
writes("Upper bound? ") ; max := readn() + 1
|
||||
test max-1 > min break or writes("Invalid bounds.*N")
|
||||
$) repeat
|
||||
wrch('*N')
|
||||
play(min, max, rand(min, max))
|
||||
$)
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
@echo off
|
||||
|
||||
:A
|
||||
set /a number=%random% %% 10 + 1
|
||||
:B
|
||||
set /p guess=Choose a number between 1 and 10:
|
||||
if %guess equ %number% goto win
|
||||
if %guess% gtr 10 msg * "Number must be between 1 and 10."
|
||||
if %guess% leq 0 msg * "Number must be between 1 and 10."
|
||||
if %guess% gtr %number% echo Higher!
|
||||
if %guess% lss %number% echo Lower!
|
||||
goto B
|
||||
:win
|
||||
cls
|
||||
echo You won! The number was %number%
|
||||
pause>nul
|
||||
goto A
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
1:"d">>048*"neewteb rebmun a sseuG">:#,_$\:.\"d na",,\,,:.55+,\-88+0v
|
||||
<*2\_$\1+%+48*">",,#v>#+:&#>#5-:!_0`00p0"hgih"00g>_0"wol"00g!>_48vv1?
|
||||
\1-:^v"d correctly!"<^,,\,+55,". >"$_,#!>#:<"Your guess was too"*<>+>
|
||||
:#,_@>"ess" >"eug uoY">
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
number = random 10
|
||||
|
||||
p "Guess a number between 1 and 10."
|
||||
|
||||
until {
|
||||
guess = ask("Guess: ").to_i
|
||||
|
||||
true? (guess.null? || { guess > 10 || guess < 1 })
|
||||
{ p "Please guess a number between 1 and 10."}
|
||||
{ true? guess == number
|
||||
{ p "Correct!"; true }
|
||||
{ true? guess < number
|
||||
{ p "Too low!" }
|
||||
{ p "Too high!" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
#include <ctime>
|
||||
|
||||
int main()
|
||||
{
|
||||
std::srand(std::time(0));
|
||||
int lower, upper, guess;
|
||||
std::cout << "Enter lower limit: ";
|
||||
std::cin >> lower;
|
||||
std::cout << "Enter upper limit: ";
|
||||
std::cin >> upper;
|
||||
int random_number = lower + std::rand() % ((upper + 1) - lower);
|
||||
|
||||
do
|
||||
{
|
||||
std::cout << "Guess what number I have: ";
|
||||
std::cin >> guess;
|
||||
if (guess > random_number)
|
||||
std::cout << "Your guess is too high\n";
|
||||
else if (guess < random_number)
|
||||
std::cout << "Your guess is too low\n";
|
||||
else
|
||||
std::cout << "You got it!\n";
|
||||
} while (guess != random_number);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
using System;
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
const int from = 1;
|
||||
const int to = 10;
|
||||
|
||||
int randomNumber = new Random().Next(from, to);
|
||||
int guessedNumber;
|
||||
|
||||
Console.Write("The number is between {0} and {1}. ", from, to);
|
||||
while (true)
|
||||
{
|
||||
Console.Write("Make a guess: ");
|
||||
if (int.TryParse(Console.ReadLine(), out guessedNumber))
|
||||
{
|
||||
if (guessedNumber == randomNumber)
|
||||
{
|
||||
Console.WriteLine("You guessed the right number!");
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Your guess was too {0}.", (guessedNumber > randomNumber) ? "high" : "low");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Input was not an integer.");
|
||||
}
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Press any key to exit.");
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
|
||||
#define lower_limit 0
|
||||
#define upper_limit 100
|
||||
|
||||
int main(){
|
||||
int number, guess;
|
||||
|
||||
srand( time( 0 ) );
|
||||
number = lower_limit + rand() % (upper_limit - lower_limit + 1);
|
||||
|
||||
printf( "Guess the number between %d and %d: ", lower_limit, upper_limit );
|
||||
|
||||
while( scanf( "%d", &guess ) == 1 ){
|
||||
if( number == guess ){
|
||||
printf( "You guessed correctly!\n" );
|
||||
break;
|
||||
}
|
||||
printf( "Your guess was too %s.\nTry again: ", number < guess ? "high" : "low" );
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
read_number = proc (prompt: string) returns (int)
|
||||
po: stream := stream$primary_output()
|
||||
pi: stream := stream$primary_input()
|
||||
while true do
|
||||
stream$puts(po, prompt)
|
||||
return(int$parse(stream$getl(pi)))
|
||||
except when bad_format:
|
||||
stream$putl(po, "Invalid number.")
|
||||
end
|
||||
end
|
||||
end read_number
|
||||
|
||||
read_limits = proc () returns (int,int)
|
||||
po: stream := stream$primary_output()
|
||||
while true do
|
||||
min: int := read_number("Lower limit? ")
|
||||
max: int := read_number("Upper limit? ")
|
||||
if min >= 0 cand min < max then return(min,max) end
|
||||
stream$putl(po, "Invalid limits, try again.")
|
||||
end
|
||||
end read_limits
|
||||
|
||||
read_guess = proc (min, max: int) returns (int)
|
||||
po: stream := stream$primary_output()
|
||||
while true do
|
||||
guess: int := read_number("Guess? ")
|
||||
if min <= guess cand max >= guess then return(guess) end
|
||||
stream$putl(po, "Guess must be between "
|
||||
|| int$unparse(min) || " and " || int$unparse(max) || ".")
|
||||
end
|
||||
end read_guess
|
||||
|
||||
play_game = proc (min, max, secret: int)
|
||||
po: stream := stream$primary_output()
|
||||
guesses: int := 0
|
||||
while true do
|
||||
guesses := guesses + 1
|
||||
guess: int := read_guess(min, max)
|
||||
if guess = secret then break
|
||||
elseif guess < secret then stream$putl(po, "Too low!")
|
||||
elseif guess > secret then stream$putl(po, "Too high!")
|
||||
end
|
||||
end
|
||||
stream$putl(po, "Correct! You got it in " || int$unparse(guesses) || " tries.")
|
||||
end play_game
|
||||
|
||||
start_up = proc ()
|
||||
po: stream := stream$primary_output()
|
||||
d: date := now()
|
||||
random$seed(d.second + 60*(d.minute + 60*d.hour))
|
||||
|
||||
stream$putl(po, "Guess the number\n----- --- ------\n")
|
||||
min, max: int := read_limits()
|
||||
secret: int := min + random$next(max - min + 1)
|
||||
play_game(min, max, secret)
|
||||
end start_up
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. Guess-With-Feedback.
|
||||
|
||||
DATA DIVISION.
|
||||
LOCAL-STORAGE SECTION.
|
||||
01 Seed PIC 9(8).
|
||||
01 Random-Num PIC 99.
|
||||
01 Guess PIC 99.
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
ACCEPT Seed FROM TIME
|
||||
COMPUTE Random-Num =
|
||||
FUNCTION REM(FUNCTION RANDOM(Seed) * 1000, 10) + 1
|
||||
|
||||
DISPLAY "Guess a number between 1 and 10:"
|
||||
|
||||
PERFORM FOREVER
|
||||
ACCEPT Guess
|
||||
|
||||
IF Guess > Random-Num
|
||||
DISPLAY "Your guess was too high."
|
||||
ELSE IF Guess < Random-Num
|
||||
DISPLAY "Your guess was too low."
|
||||
ELSE
|
||||
DISPLAY "Well guessed!"
|
||||
EXIT PERFORM
|
||||
END-PERFORM
|
||||
|
||||
GOBACK
|
||||
.
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
import ceylon.random {
|
||||
DefaultRandom
|
||||
}
|
||||
|
||||
shared void run() {
|
||||
value random = DefaultRandom();
|
||||
value range = 1..10;
|
||||
while(true) {
|
||||
value chosen = random.nextElement(range);
|
||||
print("I have chosen a number between ``range.first`` and ``range.last``.
|
||||
What is your guess?");
|
||||
while(true) {
|
||||
if(exists line = process.readLine()) {
|
||||
value guess = Integer.parse(line.trimmed);
|
||||
|
||||
if(is ParseException guess) {
|
||||
print(guess.message);
|
||||
continue;
|
||||
}
|
||||
|
||||
switch(guess <=> chosen)
|
||||
case (larger) {
|
||||
print("Too high!");
|
||||
}
|
||||
case (smaller) {
|
||||
print("Too low!");
|
||||
}
|
||||
case (equal) {
|
||||
print("You got it!");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
print("Please enter a number!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
(defn guess-run []
|
||||
(let [start 1
|
||||
end 100
|
||||
target (+ start (rand-int (inc (- end start))))]
|
||||
(printf "Guess a number between %d and %d" start end)
|
||||
(loop [i 1]
|
||||
(printf "Your guess %d:\n" i)
|
||||
(let [ans (read)]
|
||||
(if (cond
|
||||
(not (number? ans)) (println "Invalid format")
|
||||
(or (< ans start) (> ans end)) (println "Out of range")
|
||||
(< ans target) (println "too low")
|
||||
(> ans target) (println "too high")
|
||||
:else true)
|
||||
(println "Correct")
|
||||
(recur (inc i)))))))
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
(defun guess-the-number-feedback (&optional (min 1) (max 100))
|
||||
(let ((num-guesses 0)
|
||||
(num (+ (random (1+ (- max min))) min))
|
||||
(guess nil))
|
||||
(format t "Try to guess a number from ~:d to ~:d!~%" min max)
|
||||
(loop do (format t "Guess? ")
|
||||
(incf num-guesses)
|
||||
(setf guess (read))
|
||||
(format t "Your guess is ~[not a number.~;too small.~;too large.~;correct!~]~%"
|
||||
(cond ((not (numberp guess)) 0)
|
||||
((< guess num) 1)
|
||||
((> guess num) 2)
|
||||
((= guess num) 3)))
|
||||
until (and (numberp guess)
|
||||
(= guess num)))
|
||||
(format t "You got the number correct on the ~:r guess!~%" num-guesses)))
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
let n = int(rnd * 100) + 1
|
||||
|
||||
do
|
||||
|
||||
let t = t + 1
|
||||
|
||||
input "guess the number between 1 and 100", g
|
||||
|
||||
if g < n then
|
||||
|
||||
alert "guess higher"
|
||||
|
||||
endif
|
||||
|
||||
if g > n then
|
||||
|
||||
alert "guess lower"
|
||||
|
||||
endif
|
||||
|
||||
loop g <> n
|
||||
|
||||
alert "you guessed the number in ", t, " tries"
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
number = rand(1..10)
|
||||
|
||||
puts "Guess the number between 1 and 10"
|
||||
|
||||
loop do
|
||||
begin
|
||||
user_number = gets.to_s.to_i
|
||||
if user_number == number
|
||||
puts "You guessed it."
|
||||
break
|
||||
elsif user_number > number
|
||||
puts "Too high."
|
||||
else
|
||||
puts "Too low."
|
||||
end
|
||||
rescue ArgumentError
|
||||
puts "Please enter an integer."
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
import std.stdio, std.random, std.typecons, std.conv, std.string,
|
||||
std.range;
|
||||
|
||||
void main() {
|
||||
immutable interval = tuple(1, 100);
|
||||
writefln("Guess my target number that is between " ~
|
||||
"%d and %d (inclusive).\n", interval[]);
|
||||
immutable target = uniform!"[]"(interval[]);
|
||||
|
||||
foreach (immutable i; sequence!q{n}) {
|
||||
writef("Your guess #%d: ", i + 1);
|
||||
immutable txt = stdin.readln.strip;
|
||||
|
||||
Nullable!int answer;
|
||||
try {
|
||||
answer = txt.to!int;
|
||||
} catch (ConvException e) {
|
||||
writefln(" I don't understand your input '%s'", txt);
|
||||
continue;
|
||||
}
|
||||
if (answer < interval[0] || answer > interval[1]) {
|
||||
writeln(" Out of range!");
|
||||
continue;
|
||||
}
|
||||
if (answer == target) {
|
||||
writeln(" Well guessed.");
|
||||
break;
|
||||
}
|
||||
writeln(answer < target ? " Too low." : " Too high.");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
$ rnd = f$extract( 21, 2, f$time() )
|
||||
$ count = 0
|
||||
$ loop:
|
||||
$ inquire guess "guess what number between 0 and 99 inclusive I am thinking of"
|
||||
$ guess = f$integer( guess )
|
||||
$ if guess .lt. 0 .or. guess .gt. 99
|
||||
$ then
|
||||
$ write sys$output "out of range"
|
||||
$ goto loop
|
||||
$ endif
|
||||
$ count = count + 1
|
||||
$ if guess .lt. rnd then $ write sys$output "too small"
|
||||
$ if guess .gt. rnd then $ write sys$output "too large"
|
||||
$ if guess .ne. rnd then $ goto loop
|
||||
$ write sys$output "it only took you ", count, " guesses"
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
program GuessTheNumber;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
|
||||
uses
|
||||
SysUtils,
|
||||
Math;
|
||||
|
||||
|
||||
const
|
||||
// Set min/max limits
|
||||
min: Integer = 1;
|
||||
max: Integer = 10;
|
||||
|
||||
var
|
||||
last,
|
||||
val,
|
||||
inp: Integer;
|
||||
s: string;
|
||||
|
||||
// Initialise new game
|
||||
procedure NewGame;
|
||||
begin
|
||||
// Make sure this number isn't the same as the last one
|
||||
repeat
|
||||
val := RandomRange(min,max);
|
||||
until
|
||||
val <> last;
|
||||
|
||||
// Save this number
|
||||
last := val;
|
||||
Writeln('Guess a number between ', min, ' and ', max, ' [Answer = ', val, ']');
|
||||
end;
|
||||
|
||||
begin
|
||||
// Initialise the random number generator with a random value
|
||||
Randomize;
|
||||
|
||||
// Initialise last number
|
||||
last := 0;
|
||||
|
||||
// Initialise user input
|
||||
s := '';
|
||||
|
||||
// Start game
|
||||
NewGame;
|
||||
|
||||
// Loop
|
||||
repeat
|
||||
// User input
|
||||
Readln(s);
|
||||
|
||||
// Validate - checxk if input is a number
|
||||
if TryStrToInt(s,inp) then
|
||||
begin
|
||||
// Is it the right number?
|
||||
if (inp = val) then
|
||||
begin
|
||||
// Yes - request a new game
|
||||
Writeln('Correct! Another go? Y/N');
|
||||
Readln(s);
|
||||
if SameText(s,'Y') then
|
||||
// Start new game
|
||||
NewGame
|
||||
else
|
||||
Exit;
|
||||
end
|
||||
else
|
||||
// Input too low/high
|
||||
if (inp < val) then
|
||||
Writeln('Too low! Try again...')
|
||||
else
|
||||
if (inp > val) then
|
||||
Writeln('Too high! Try again...');
|
||||
end
|
||||
else
|
||||
// Input invalid
|
||||
if not SameText(s,'bored') then
|
||||
Writeln('Invalid input! Try again...');
|
||||
|
||||
until
|
||||
SameText(s,'bored');
|
||||
|
||||
|
||||
end.
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
print "Guess a number between 1 and 100!"
|
||||
n = random 100
|
||||
repeat
|
||||
g = number input
|
||||
write g
|
||||
if error = 1
|
||||
print "You must enter a number!"
|
||||
elif g > n
|
||||
print " is too high"
|
||||
elif g < n
|
||||
print " is too low"
|
||||
.
|
||||
until g = n
|
||||
.
|
||||
print " is correct"
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
;;(read <default-value> <prompt>) prompts the user with a default value using the browser dialog box.
|
||||
;; we play sounds to make this look like an arcade game
|
||||
(lib 'web) ; (play-sound) is defined in web.lib
|
||||
|
||||
(define (guess-feed (msg " 🔮 Enter a number in [0...100], -1 to stop.") (n (random 100)) (user 0))
|
||||
(set! user (read user msg))
|
||||
(play-sound 'ko)
|
||||
(unless (eq? n user ) ; user is the last user answer
|
||||
(guess-feed
|
||||
(cond ;; adapt prompt according to condition
|
||||
((not (integer? user)) "❌ Please, enter an integer")
|
||||
(( < user 0) (error "🌵 - It was:" n)) ; exit to top level
|
||||
((> n user) "Too low ...")
|
||||
((< n user) "Too high ..."))
|
||||
n user))
|
||||
(play-sound 'ok )
|
||||
" 🔮 Well played!! 🍒 🍇 🍓")
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
open string datetime random core monad io
|
||||
|
||||
guess () = do
|
||||
putStrLn "What's the upper bound?"
|
||||
ub <- readAny
|
||||
main ub
|
||||
where main ub
|
||||
| ub < 0 = "Bound should be greater than 0."
|
||||
| else = do
|
||||
putStrLn $ format "Guess a number from 1 to {0}" ub
|
||||
dt <- datetime.now
|
||||
guesser (rnd (milliseconds $ dt) 1 ub)
|
||||
guesser v = do
|
||||
x <- readAny
|
||||
if x == v then
|
||||
cont ()
|
||||
else if x < v then
|
||||
do putStrLn "Too small!"
|
||||
guesser v
|
||||
else
|
||||
do putStrLn "Too big!"
|
||||
guesser v
|
||||
cont () = do
|
||||
putStrLn "Correct! Do you wish to continue (Y/N)?"
|
||||
ask ()
|
||||
ask () = do
|
||||
a <- readStr
|
||||
if a == "y" || a == "Y" then
|
||||
guess ()
|
||||
else if a == "n" || a == "N" then
|
||||
do putStrLn "Bye!"
|
||||
else
|
||||
do putStrLn "Say what?"
|
||||
ask ()
|
||||
|
||||
guess () ::: IO
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
import extensions;
|
||||
|
||||
public program()
|
||||
{
|
||||
int randomNumber := randomGenerator.eval(1,10);
|
||||
console.printLine("I'm thinking of a number between 1 and 10. Can you guess it?");
|
||||
bool numberCorrect := false;
|
||||
until(numberCorrect)
|
||||
{
|
||||
console.print("Guess: ");
|
||||
int userGuess := console.readLine().toInt();
|
||||
if (randomNumber == userGuess)
|
||||
{
|
||||
numberCorrect := true;
|
||||
console.printLine("Congrats!! You guessed right!")
|
||||
}
|
||||
else if (randomNumber < userGuess)
|
||||
{
|
||||
console.printLine("Your guess was too high")
|
||||
}
|
||||
else
|
||||
{
|
||||
console.printLine("Your guess was too low")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
defmodule GuessingGame do
|
||||
def play(lower, upper) do
|
||||
play(lower, upper, Enum.random(lower .. upper))
|
||||
end
|
||||
defp play(lower, upper, number) do
|
||||
guess = Integer.parse(IO.gets "Guess a number (#{lower}-#{upper}): ")
|
||||
case guess do
|
||||
{^number, _} ->
|
||||
IO.puts "Well guessed!"
|
||||
{n, _} when n in lower..upper ->
|
||||
IO.puts if n > number, do: "Too high.", else: "Too low."
|
||||
play(lower, upper, number)
|
||||
_ ->
|
||||
IO.puts "Guess not in valid range."
|
||||
play(lower, upper, number)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
GuessingGame.play(1, 100)
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
(let* ((min 1)
|
||||
(max 100)
|
||||
(number (+ (random (1+ (- max min))) min))
|
||||
guess done)
|
||||
(message "Guess the number between %d and %d" min max)
|
||||
(while (not done)
|
||||
(setq guess (read-number "Please enter a number "))
|
||||
(cond
|
||||
((< guess number)
|
||||
(message "Too low!"))
|
||||
((> guess number)
|
||||
(message "Too high!"))
|
||||
((= guess number)
|
||||
(setq done t)
|
||||
(message "Well guessed!")))))
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
% Implemented by Arjun Sunel
|
||||
-module(guess_number).
|
||||
-export([main/0]).
|
||||
|
||||
main() ->
|
||||
L = 1 , % Lower Limit
|
||||
U = 100, % Upper Limit
|
||||
|
||||
io:fwrite("Guess my number between ~p and ", [L]),
|
||||
io:fwrite("and ~p until you get it right.\n", [U]),
|
||||
N = random:uniform(100),
|
||||
guess(N).
|
||||
|
||||
guess(N) ->
|
||||
{ok, [K]} = io:fread("Guess the number : ","~d"),
|
||||
if
|
||||
K=:=N ->
|
||||
io:format("Well guessed!!\n");
|
||||
true ->
|
||||
if
|
||||
K > N ->
|
||||
io:format("Your guess is too high.\n");
|
||||
true ->
|
||||
io:format("Your guess is too low.\n")
|
||||
end,
|
||||
guess(N)
|
||||
end.
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
include get.e
|
||||
|
||||
constant lower_limit = 0, upper_limit = 100
|
||||
|
||||
integer number, guess
|
||||
number = rand(upper_limit-lower_limit+1)+lower_limit
|
||||
|
||||
printf(1,"Guess the number between %d and %d: ", lower_limit & upper_limit)
|
||||
while 1 do
|
||||
guess = floor(prompt_number("", lower_limit & upper_limit))
|
||||
if number = guess then
|
||||
puts(1,"You guessed correctly!\n")
|
||||
exit
|
||||
elsif number < guess then
|
||||
puts(1,"You guessed too high.\nTry again: ")
|
||||
else
|
||||
puts(1,"You guessed to low.\nTry again: ")
|
||||
end if
|
||||
end while
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
open System
|
||||
|
||||
[<EntryPoint>]
|
||||
let main argv =
|
||||
let aim =
|
||||
let from = 1
|
||||
let upto = 100
|
||||
let rnd = System.Random()
|
||||
Console.WriteLine("Hi, you have to guess a number between {0} and {1}",from,upto)
|
||||
rnd.Next(from,upto)
|
||||
|
||||
let mutable correct = false
|
||||
while not correct do
|
||||
|
||||
let guess =
|
||||
Console.WriteLine("Please enter your guess:")
|
||||
match System.Int32.TryParse(Console.ReadLine()) with
|
||||
| true, number -> Some(number)
|
||||
| false,_ -> None
|
||||
|
||||
match guess with
|
||||
| Some(number) ->
|
||||
match number with
|
||||
| number when number > aim -> Console.WriteLine("You guessed to high!")
|
||||
| number when number < aim -> Console.WriteLine("You guessed to low!")
|
||||
| _ -> Console.WriteLine("You guessed right!")
|
||||
correct <- true
|
||||
| None -> Console.WriteLine("Error: You didn't entered a parsable number!")
|
||||
|
||||
0
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
01.01 S T=0
|
||||
01.02 A "LOWER LIMIT",L
|
||||
01.03 A "UPPER LIMIT",H
|
||||
01.04 I (H-L)1.05,1.05,1.06
|
||||
01.05 T "INVALID RANGE",!;G 1.02
|
||||
01.06 S S=FITR(L+FRAN()*(H-L+1))
|
||||
01.10 A "GUESS",G
|
||||
01.11 I (H-G)1.13,1.12,1.12
|
||||
01.12 I (G-L)1.13,1.14,1.14
|
||||
01.13 T "OUT OF RANGE",!;G 1.1
|
||||
01.14 S T=T+1
|
||||
01.15 I (G-S)1.16,1.17,1.18
|
||||
01.16 T "TOO LOW!",!;G 1.1
|
||||
01.17 T "CORRECT! GUESSES",%4,T,!;Q
|
||||
01.18 T "TOO HIGH!",!;G 1.1
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
rem Hilo number guessing game
|
||||
rem compile with FTCBASIC to 704 bytes com program file
|
||||
|
||||
use time.inc
|
||||
use random.inc
|
||||
|
||||
define try = 0, tries = 0, game = 0
|
||||
|
||||
gosub systemtime
|
||||
|
||||
let randseed = loworder
|
||||
let randlimit = 100
|
||||
|
||||
do
|
||||
|
||||
gosub intro
|
||||
gosub play
|
||||
gosub continue
|
||||
|
||||
loop try = 0
|
||||
|
||||
end
|
||||
|
||||
sub intro
|
||||
|
||||
bell
|
||||
cls
|
||||
print "Hilo game"
|
||||
crlf
|
||||
|
||||
return
|
||||
|
||||
sub play
|
||||
|
||||
gosub generaterand
|
||||
|
||||
+1 rand
|
||||
0 tries
|
||||
let game = 1
|
||||
|
||||
print "Guess the number between 1 and 100"
|
||||
crlf
|
||||
|
||||
do
|
||||
|
||||
+1 tries
|
||||
|
||||
input try
|
||||
crlf
|
||||
|
||||
if try = rand then
|
||||
|
||||
let game = 0
|
||||
|
||||
print "You guessed the number!"
|
||||
print "Tries: " \
|
||||
print tries
|
||||
|
||||
endif
|
||||
|
||||
if game = 1 then
|
||||
|
||||
if try > rand then
|
||||
|
||||
print "Try lower..."
|
||||
|
||||
endif
|
||||
|
||||
if try < rand then
|
||||
|
||||
print "Try higher..."
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
crlf
|
||||
|
||||
loop game = 1
|
||||
|
||||
return
|
||||
|
||||
sub continue
|
||||
|
||||
print "Enter 0 to play again or 1 to EXIT to DOS"
|
||||
input try
|
||||
|
||||
return
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
USING:
|
||||
formatting
|
||||
fry
|
||||
io
|
||||
kernel
|
||||
math math.parser math.ranges
|
||||
prettyprint
|
||||
random ;
|
||||
IN: guessnumber
|
||||
|
||||
: game-step ( target -- ? )
|
||||
readln string>number
|
||||
[
|
||||
2dup =
|
||||
[ 2drop f "Correct!" ]
|
||||
[ < "high" "low" ? "Guess too %s, try again." sprintf t swap ]
|
||||
if
|
||||
]
|
||||
[ drop t "Invalid guess." ]
|
||||
if* print flush ;
|
||||
|
||||
: main ( -- )
|
||||
99 [1,b]
|
||||
[ unparse "Number in range %s, your guess?\n" printf flush ]
|
||||
[ random '[ _ game-step ] loop ]
|
||||
bi ;
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
class Main
|
||||
{
|
||||
public static Void main ()
|
||||
{
|
||||
Int lowerLimit := 1
|
||||
Int higherLimit := 100
|
||||
|
||||
Int target := (lowerLimit..higherLimit).random
|
||||
Int guess
|
||||
while (guess != target)
|
||||
{
|
||||
echo ("Enter a guess: ")
|
||||
try
|
||||
{
|
||||
// read in a line of input, and try to interpret as an Int
|
||||
guess = Env.cur.in.readLine.trim.toInt
|
||||
if (guess == target)
|
||||
{
|
||||
echo ("Well guessed!")
|
||||
}
|
||||
else if (guess < target)
|
||||
{
|
||||
echo ("Failed - your guess is too small")
|
||||
}
|
||||
else // if (guess > target)
|
||||
{
|
||||
echo ("Failed - your guess is too large")
|
||||
}
|
||||
}
|
||||
catch (Err e)
|
||||
{
|
||||
echo ("Your guess must be an integer")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
program Guess_a_number
|
||||
implicit none
|
||||
|
||||
integer, parameter :: limit = 100
|
||||
integer :: guess, number
|
||||
real :: rnum
|
||||
|
||||
write(*, "(a, i0, a)") "I have chosen a number between 1 and ", limit, &
|
||||
" and you have to try to guess it."
|
||||
write(*, "(a/)") "I will score your guess by indicating whether it is higher, lower or the same as that number"
|
||||
|
||||
call random_seed
|
||||
call random_number(rnum)
|
||||
number = rnum * limit + 1
|
||||
do
|
||||
write(*, "(a)", advance="no") "Enter quess: "
|
||||
read*, guess
|
||||
if(guess < number) then
|
||||
write(*, "(a/)") "That is lower"
|
||||
else if(guess > number) then
|
||||
write(*, "(a/)") "That is higher"
|
||||
else
|
||||
write(*, "(a)") "That is correct"
|
||||
exit
|
||||
end if
|
||||
end do
|
||||
end program
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
' FB 1.05.0 Win64
|
||||
|
||||
Randomize
|
||||
Dim n As Integer = Int(Rnd * 20) + 1
|
||||
Dim guess As Integer
|
||||
|
||||
Print "Guess which number I've chosen in the range 1 to 20"
|
||||
Print
|
||||
Do
|
||||
Input " Your guess : "; guess
|
||||
If guess > n AndAlso guess <= 20 Then
|
||||
Print "Your guess is higher than the chosen number, try again "
|
||||
ElseIf guess = n Then
|
||||
Print "Correct, well guessed!"
|
||||
Exit Do
|
||||
ElseIf guess < n AndAlso guess >= 1 Then
|
||||
Print "Your guess is lower than the chosen number, try again"
|
||||
Else
|
||||
Print "Your guess is inappropriate, try again"
|
||||
End If
|
||||
Loop
|
||||
End
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
// Guess a Number with feedback.
|
||||
target = random[1,100] // Min and max are both inclusive for the random function
|
||||
guess = 0
|
||||
println["Welcome to guess a number! I've picked a number between 1 and 100. Try to guess it!"]
|
||||
while guess != target
|
||||
{
|
||||
guessStr = input["What is your guess?"]
|
||||
guess = parseInt[guessStr]
|
||||
if guess == undef
|
||||
{
|
||||
println["$guessStr is not a valid guess. Please enter a number from 1 to 100."]
|
||||
next
|
||||
}
|
||||
if guess < target
|
||||
println["My number is higher than $guess."]
|
||||
if guess > target
|
||||
println["My number is lower than $guess."]
|
||||
if guess == target
|
||||
println["$guess is correct! Well guessed!"]
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
Public Sub Main()
|
||||
|
||||
Randomize
|
||||
Dim guess As Integer, max As Integer = 20
|
||||
Dim n As Integer = Int(Rnd * max) + 1
|
||||
|
||||
Print "Guess which number I've chosen in the range 1 to "; max; Chr(10)
|
||||
|
||||
Do
|
||||
Print " Your guess : "
|
||||
Input guess
|
||||
If guess > n And guess <= 20 Then
|
||||
Print "Your guess is higher than the chosen number, try again"
|
||||
Else If guess = n Then
|
||||
Print "Correct, well guessed!"
|
||||
Break
|
||||
Else If guess < n And guess >= 1 Then
|
||||
Print "Your guess is lower than the chosen number, try again"
|
||||
Else
|
||||
Print "Your guess is inappropriate, try again"
|
||||
End If
|
||||
Loop
|
||||
|
||||
End
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
[indent=4]
|
||||
/*
|
||||
Number guessing with feedback, in Genie
|
||||
from https://wiki.gnome.org/Projects/Genie/AdvancedSample
|
||||
|
||||
valac numberGuessing.gs
|
||||
./numberGuessing
|
||||
*/
|
||||
class NumberGuessing
|
||||
|
||||
prop min:int
|
||||
prop max:int
|
||||
|
||||
construct(m:int, n:int)
|
||||
self.min = m
|
||||
self.max = n
|
||||
|
||||
def start()
|
||||
try_count:int = 0
|
||||
number:int = Random.int_range(min, max)
|
||||
|
||||
stdout.printf("Welcome to Number Guessing!\n\n")
|
||||
stdout.printf("I have thought up a number between %d and %d\n", min, max)
|
||||
stdout.printf("which you have to guess. I will give hints as we go.\n\n")
|
||||
|
||||
while true
|
||||
stdout.printf("Try #%d, ", ++try_count)
|
||||
stdout.printf("please enter a number between %d and %d: ", min, max)
|
||||
line:string? = stdin.read_line()
|
||||
if line is null
|
||||
stdout.printf("bailing...\n")
|
||||
break
|
||||
|
||||
input:int64 = 0
|
||||
unparsed:string = ""
|
||||
converted:bool = int64.try_parse(line, out input, out unparsed)
|
||||
if not converted or line is unparsed
|
||||
stdout.printf("Sorry, input seems invalid\n")
|
||||
continue
|
||||
|
||||
guess:int = (int)input
|
||||
if number is guess
|
||||
stdout.printf("Congratulations! You win.\n")
|
||||
break
|
||||
else
|
||||
stdout.printf("Try again. The number in mind is %s than %d.\n",
|
||||
number > guess ? "greater" : "less", guess)
|
||||
|
||||
init
|
||||
var game = new NumberGuessing(1, 100)
|
||||
game.start()
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"time"
|
||||
)
|
||||
|
||||
const lower, upper = 1, 100
|
||||
|
||||
func main() {
|
||||
fmt.Printf("Guess integer number from %d to %d: ", lower, upper)
|
||||
rand.Seed(time.Now().Unix())
|
||||
n := rand.Intn(upper-lower+1) + lower
|
||||
for guess := n; ; {
|
||||
switch _, err := fmt.Scan(&guess); {
|
||||
case err != nil:
|
||||
fmt.Println("\n", err, "So, bye.")
|
||||
return
|
||||
case guess < n:
|
||||
fmt.Print("Too low. Try again: ")
|
||||
case guess > n:
|
||||
fmt.Print("Too high. Try again: ")
|
||||
default:
|
||||
fmt.Println("Well guessed!")
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
def rand = new Random() // java.util.Random
|
||||
def range = 1..100 // Range (inclusive)
|
||||
def number = rand.nextInt(range.size()) + range.from // get a random number in the range
|
||||
|
||||
println "The number is in ${range.toString()}" // print the range
|
||||
|
||||
def guess
|
||||
while (guess != number) { // keep running until correct guess
|
||||
try {
|
||||
print 'Guess the number: '
|
||||
guess = System.in.newReader().readLine() as int // read the guess in as int
|
||||
switch (guess) { // check the guess against number
|
||||
case { it < number }: println 'Your guess is too low'; break
|
||||
case { it > number }: println 'Your guess is too high'; break
|
||||
default: println 'Your guess is spot on!'; break
|
||||
}
|
||||
} catch (NumberFormatException ignored) { // catches all input that is not a number
|
||||
println 'Please enter a number!'
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
The number is in 1..100
|
||||
Guess the number: ghfvkghj
|
||||
Please enter a number!
|
||||
Guess the number: 50
|
||||
Your guess is too low
|
||||
Guess the number: 75
|
||||
Your guess is too low
|
||||
Guess the number: 83
|
||||
Your guess is too low
|
||||
Guess the number: 90
|
||||
Your guess is too low
|
||||
Guess the number: 95
|
||||
Your guess is too high
|
||||
Guess the number: 92
|
||||
Your guess is spot on!
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
import Control.Monad
|
||||
import System.Random
|
||||
|
||||
-- Repeat the action until the predicate is true.
|
||||
until_ act pred = act >>= pred >>= flip unless (until_ act pred)
|
||||
|
||||
answerIs ans guess =
|
||||
case compare ans guess of
|
||||
LT -> putStrLn "Too high. Guess again." >> return False
|
||||
EQ -> putStrLn "You got it!" >> return True
|
||||
GT -> putStrLn "Too low. Guess again." >> return False
|
||||
|
||||
-- Repeatedly read until the input *starts* with a number. (Since
|
||||
-- we use "reads" we allow garbage to follow it, though.)
|
||||
ask = do line <- getLine
|
||||
case reads line of
|
||||
((num,_):_) -> return num
|
||||
otherwise -> putStrLn "Please enter a number." >> ask
|
||||
|
||||
main = do
|
||||
ans <- randomRIO (1,100) :: IO Int
|
||||
putStrLn "Try to guess my secret number between 1 and 100."
|
||||
ask `until_` answerIs ans
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
U8 n, *g;
|
||||
U8 min = 1, max = 100;
|
||||
|
||||
n = min + RandU16 % max;
|
||||
|
||||
Print("Guess the number between %d and %d: ", min, max);
|
||||
|
||||
while(1) {
|
||||
g = GetStr;
|
||||
|
||||
if (Str2I64(g) == n) {
|
||||
Print("You guessed correctly!\n");
|
||||
break;
|
||||
}
|
||||
|
||||
if (Str2I64(g) < n)
|
||||
Print("Your guess was too low.\nTry again: ");
|
||||
if (Str2I64(g) > n)
|
||||
Print("Your guess was too high.\nTry again: ");
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
100 PROGRAM "Guess.bas"
|
||||
110 RANDOMIZE
|
||||
120 LET UP=10:LET LO=1 ! Limits
|
||||
130 PRINT "I'm thinking of a number between";LO;"and";UP
|
||||
140 LET COUNT=0:LET NR=RND(UP-LO+1)+LO
|
||||
150 DO
|
||||
160 LET COUNT=COUNT+1
|
||||
170 INPUT PROMPT "Guess a number: ":GU
|
||||
180 SELECT CASE GU
|
||||
190 CASE IS>NR
|
||||
200 PRINT "My number is lower that."
|
||||
210 CASE IS<NR
|
||||
220 PRINT "My number is higher that."
|
||||
230 CASE ELSE
|
||||
240 PRINT "Well guessed! Numner of tips:";COUNT
|
||||
250 END SELECT
|
||||
260 LOOP UNTIL NR=GU
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
procedure main()
|
||||
smallest := 5
|
||||
highest := 25
|
||||
n := smallest-1 + ?(1+highest-smallest)
|
||||
repeat {
|
||||
writes("Pick a number from ", smallest, " through ", highest, ": ")
|
||||
guess := read ()
|
||||
|
||||
if n = numeric(guess)
|
||||
then {
|
||||
write ("Well guessed!")
|
||||
exit ()
|
||||
}
|
||||
else if n < numeric(guess)
|
||||
then write ("Your guess is too high")
|
||||
else if n > numeric(guess)
|
||||
then write ("Your guess is too low")
|
||||
else write ("Did you enter a number?")
|
||||
}
|
||||
end
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
require 'misc'
|
||||
game=: verb define
|
||||
assert. y -: 1 >. <.{.y
|
||||
n=: 1 + ?y
|
||||
smoutput 'Guess my integer, which is bounded by 1 and ',":y
|
||||
whilst. -. x -: n do.
|
||||
x=. {. 0 ". prompt 'Guess: '
|
||||
if. 0 -: x do. 'Giving up.' return. end.
|
||||
smoutput (*x-n){::'You win.';'Too high.';'Too low.'
|
||||
end.
|
||||
)
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
game 100
|
||||
Guess my integer, which is bounded by 1 and 100
|
||||
Guess: 64
|
||||
Too high.
|
||||
Guess: 32
|
||||
Too low.
|
||||
Guess: 48
|
||||
Too high.
|
||||
Guess: 40
|
||||
Too low.
|
||||
Guess: 44
|
||||
You win.
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
import java.util.Random;
|
||||
import java.util.Scanner;
|
||||
public class Main
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
Scanner scan = new Scanner(System.in);
|
||||
Random random = new Random();
|
||||
long from = 1;
|
||||
long to = 100;
|
||||
int randomNumber = random.nextInt(to - from + 1) + from;
|
||||
int guessedNumber = 0;
|
||||
|
||||
System.out.printf("The number is between %d and %d.\n", from, to);
|
||||
|
||||
do
|
||||
{
|
||||
System.out.print("Guess what the number is: ");
|
||||
guessedNumber = scan.nextInt();
|
||||
if (guessedNumber > randomNumber)
|
||||
System.out.println("Your guess is too high!");
|
||||
else if (guessedNumber < randomNumber)
|
||||
System.out.println("Your guess is too low!");
|
||||
else
|
||||
System.out.println("You got it!");
|
||||
} while (guessedNumber != randomNumber);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<p>Pick a number between 1 and 100.</p>
|
||||
<form id="guessNumber">
|
||||
<input type="text" name="guess">
|
||||
<input type="submit" value="Submit Guess">
|
||||
</form>
|
||||
<p id="output"></p>
|
||||
<script type="text/javascript">
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
var number = Math.ceil(Math.random() * 100);
|
||||
|
||||
function verify() {
|
||||
var guess = Number(this.elements.guess.value),
|
||||
output = document.getElementById('output');
|
||||
|
||||
if (isNaN(guess)) {
|
||||
output.innerHTML = 'Enter a number.';
|
||||
} else if (number === guess) {
|
||||
output.innerHTML = 'You guessed right!';
|
||||
} else if (guess > 100) {
|
||||
output.innerHTML = 'Your guess is out of the 1 to 100 range.';
|
||||
} else if (guess > number) {
|
||||
output.innerHTML = 'Your guess is too high.';
|
||||
} else if (guess < number) {
|
||||
output.innerHTML = 'Your guess is too low.';
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
document.getElementById('guessNumber').onsubmit = verify;
|
||||
|
|
@ -0,0 +1 @@
|
|||
</script>
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
#!/usr/bin/env js
|
||||
|
||||
function main() {
|
||||
guessTheNumber(1, 100);
|
||||
}
|
||||
|
||||
function guessTheNumber(low, high) {
|
||||
var num = randOnRange(low, high);
|
||||
var guessCount = 0;
|
||||
|
||||
function checkGuess(n) {
|
||||
if (n < low || n > high) {
|
||||
print('That number is not between ' + low + ' and ' + high + '!');
|
||||
return false;
|
||||
}
|
||||
|
||||
if (n == num) {
|
||||
print('You got it in ' + String(guessCount) + ' tries.');
|
||||
return true;
|
||||
}
|
||||
|
||||
if (n < num) {
|
||||
print('Too low.');
|
||||
} else {
|
||||
print('Too high.');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
print('I have picked a number between ' + low + ' and ' + high + '. Try to guess it!');
|
||||
while (true) {
|
||||
guessCount++;
|
||||
putstr(" Your guess: ");
|
||||
var n = parseInt(readline());
|
||||
if (checkGuess(n)) break;
|
||||
}
|
||||
}
|
||||
|
||||
function randOnRange(low, high) {
|
||||
var r = Math.random();
|
||||
return Math.floor(r * (high - low + 1)) + low;
|
||||
}
|
||||
|
||||
main();
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
# $min and $max can be specified on the command line but for illustrative purposes:
|
||||
def minmax: [0, 20];
|
||||
|
||||
# low-entropy PRNG in range($a;$b) i.e. $a <= prng < $b
|
||||
# (no checking)
|
||||
def prng($a;$b): $a + ((now * 1000000 | trunc) % ($b - $a) );
|
||||
|
||||
def play:
|
||||
# extract a number if possible
|
||||
def str2num:
|
||||
try tonumber catch null;
|
||||
|
||||
minmax as [$min, $max]
|
||||
| prng($min; $max) as $number
|
||||
| "The computer has chosen a whole number between \($min) and \($max) inclusive.",
|
||||
"Please guess the number or type q to quit:",
|
||||
(label $out
|
||||
| foreach inputs as $guess (null;
|
||||
if $guess == "q" then null, break $out
|
||||
else ($guess|str2num) as $g
|
||||
| if $g == null or $g < 0 then "Please enter a non-negative integer or q to quit"
|
||||
elif $g < $min or $g > $max then "That is out of range. Try again"
|
||||
elif $g > $number then "Too high"
|
||||
elif $g < $number then "Too low"
|
||||
else true, break $out
|
||||
end
|
||||
end)
|
||||
| if type == "string" then .
|
||||
elif . == true then "Spot on!", "Let's start again.\n", play
|
||||
else empty
|
||||
end );
|
||||
|
||||
play
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
function guesswithfeedback(n::Integer)
|
||||
number = rand(1:n)
|
||||
print("I choose a number between 1 and $n\nYour guess? ")
|
||||
while (guess = readline()) != dec(number)
|
||||
if all(isdigit, guess)
|
||||
print("Too ", parse(Int, guess) < number ? "small" : "big")
|
||||
else
|
||||
print("Enter an integer please")
|
||||
end
|
||||
print(", new guess? ")
|
||||
end
|
||||
println("You guessed right!")
|
||||
end
|
||||
|
||||
guesswithfeedback(10)
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
import kotlin.random.Random
|
||||
|
||||
fun main() {
|
||||
val n = 1 + rand.nextInt(20)
|
||||
println("Guess which number I've chosen in the range 1 to 20\n")
|
||||
while (true) {
|
||||
print(" Your guess : ")
|
||||
val guess = readLine()?.toInt()
|
||||
when (guess) {
|
||||
n -> { println("Correct, well guessed!") ; return }
|
||||
in n + 1 .. 20 -> println("Your guess is higher than the chosen number, try again")
|
||||
in 1 .. n - 1 -> println("Your guess is lower than the chosen number, try again")
|
||||
else -> println("Your guess is inappropriate, try again")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
(defmodule guessing-game
|
||||
(export (main 0)))
|
||||
|
||||
(defun get-player-guess ()
|
||||
(let (((tuple 'ok (list guessed)) (: io fread '"Guess number: " '"~d")))
|
||||
guessed))
|
||||
|
||||
(defun check-guess (answer guessed)
|
||||
(cond
|
||||
((== answer guessed)
|
||||
(: io format '"Well-guessed!!~n"))
|
||||
((/= answer guessed)
|
||||
(if (> answer guessed) (: io format '"Your guess is too low.~n"))
|
||||
(if (< answer guessed) (: io format '"Your guess is too high.~n"))
|
||||
(check-guess answer (get-player-guess)))))
|
||||
|
||||
(defun main ()
|
||||
(: io format '"Guess the number I have chosen, between 1 and 10.~n")
|
||||
(check-guess
|
||||
(: random uniform 10)
|
||||
(get-player-guess)))
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
> (slurp '"guessing-game.lfe")
|
||||
#(ok guessing-game)
|
||||
> (main)
|
||||
Guess the number I have chosen, between 1 and 10.
|
||||
Guess number: 10
|
||||
Your guess is too high.
|
||||
Guess number: 1
|
||||
Your guess is too low.
|
||||
Guess number: 5
|
||||
Your guess is too low.
|
||||
Guess number: 7
|
||||
Well-guessed!!
|
||||
ok
|
||||
>
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
{def game
|
||||
|
||||
{def game.rec // recursive part
|
||||
{lambda {:n :l :h}
|
||||
{let { {:n :n} {:l :l} {:h :h} // :n, :l, :h redefined
|
||||
{:g {round {/ {+ :l :h} 2}}}} // :g is the middle
|
||||
{if {< :g :n}
|
||||
then {br}:g too low!
|
||||
{game.rec :n {+ :g 1} :h} // do it again higher
|
||||
else {if {> :g :n}
|
||||
then {br}:g too high!
|
||||
{game.rec :n :l {- :g 1}} // do it again lower
|
||||
else {br}{b :g Got it!} }} }}} // bingo!
|
||||
|
||||
{lambda {:n}
|
||||
{let { {:n :n} // :n redefined
|
||||
{:N {floor {* :n {random}}}}} // compute a random number
|
||||
Find {b :N} between 0 and :n {game.rec :N 0 :n}
|
||||
}}}
|
||||
|
||||
{game {pow 2 32}} // 2**32 = 4294967296
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/lasso9
|
||||
|
||||
local(
|
||||
lower = integer_random(10, 1),
|
||||
higher = integer_random(100, 20),
|
||||
number = integer_random(#higher, #lower),
|
||||
status = false,
|
||||
guess
|
||||
)
|
||||
|
||||
// prompt for a number
|
||||
stdout('Guess a number: ')
|
||||
|
||||
while(not #status) => {
|
||||
#guess = null
|
||||
|
||||
// the following bits wait until the terminal gives you back a line of input
|
||||
while(not #guess or #guess -> size == 0) => {
|
||||
#guess = file_stdin -> readSomeBytes(1024, 1000)
|
||||
}
|
||||
#guess = integer(#guess)
|
||||
|
||||
if(not (range(#guess, #lower, #higher) == #guess)) => {
|
||||
stdout('Input not of correct type or range. Guess a number: ')
|
||||
else(#guess > #number)
|
||||
stdout('That was to high, try again! ')
|
||||
else(#guess < #number)
|
||||
stdout('That was to low, try again! ')
|
||||
else(#guess == #number)
|
||||
stdout('Well guessed!')
|
||||
#status = true
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
[start]
|
||||
target = int( rnd( 1) * 100) +1
|
||||
|
||||
while 1
|
||||
do
|
||||
input "Guess a whole number between 1 and 100. To finish, type 'exit' "; b$
|
||||
if b$ ="exit" then print "Thank you for playing!": end
|
||||
c = val( b$)
|
||||
ok =( c =int( c)) and ( c >=1) and ( c <=100)
|
||||
if ok =0 then notice "Invalid data. Integers 1 to 100 only."
|
||||
loop until ok <>0
|
||||
|
||||
if c =target then print " You guessed correctly.": print: goto [start]
|
||||
if c <target then print " Your guess was too low."
|
||||
if c >target then print " Your guess was too high."
|
||||
wend
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
command guessTheNumber lowN highN
|
||||
local tNumber, tguess, tmin, tmax
|
||||
if lowN is empty or lowN < 1 then
|
||||
put 1 into tmin
|
||||
else
|
||||
put lowN into tmin
|
||||
end if
|
||||
if highN is empty then
|
||||
put 10 into tmax
|
||||
else
|
||||
put highN into tmax
|
||||
end if
|
||||
put random(tmax - tmin + 1) + tmin - 1 into tNumber
|
||||
repeat until tguess is tNumber
|
||||
ask question "Please enter a number between" && tmin && "and" && tmax titled "Guess the number"
|
||||
if it is not empty then
|
||||
put it into tguess
|
||||
if tguess is tNumber then
|
||||
answer "Well guessed!"
|
||||
else if tguess < tNumber then
|
||||
answer "too low"
|
||||
else
|
||||
answer "too high"
|
||||
end if
|
||||
else
|
||||
exit repeat
|
||||
end if
|
||||
end repeat
|
||||
end guessTheNumber
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
command testGuessNumber
|
||||
guessTheNumber --defaults to 1-10
|
||||
guessTheNumber 9,12
|
||||
end testGuessNumber
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
10 CLS:RANDOMIZE TIME
|
||||
20 PRINT "Please specify lower and upper limits":guess=0
|
||||
30 INPUT " (must be positive integers) :", first, last
|
||||
40 IF first<1 OR last<1 THEN 20
|
||||
50 num=INT(RND*(last-first+1)+first)
|
||||
60 WHILE num<>guess
|
||||
70 INPUT "Your guess? ", guess
|
||||
80 IF guess<num THEN PRINT "too small!"
|
||||
90 IF guess>num THEN PRINT "too large!"
|
||||
100 WEND
|
||||
110 INPUT "That's correct! Another game (y/n)? ", yn$
|
||||
120 IF yn$="y" THEN 20
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
to guess [:max 100]
|
||||
local "number
|
||||
make "number random :max
|
||||
local "guesses
|
||||
make "guesses 0
|
||||
|
||||
local "guess
|
||||
forever [
|
||||
(type [Guess my number! \(range 1 -\ ] :max "\):\ )
|
||||
make "guess first readlist
|
||||
ifelse (or (not numberp :guess) (lessp :guess 1) (greaterp :guess :max)) [
|
||||
print sentence [Guess must be a number between 1 and] (word :max ".)
|
||||
] [
|
||||
make "guesses (:guesses + 1)
|
||||
ifelse lessp :guess :number [
|
||||
print [Too low!]
|
||||
] [ifelse equalp :guess :number [
|
||||
(print [You got it in] :guesses "guesses!)
|
||||
stop
|
||||
] [
|
||||
print [Too high!]
|
||||
]]
|
||||
]
|
||||
]
|
||||
end
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
math.randomseed(os.time())
|
||||
me_win=false
|
||||
my_number=math.random(1,10)
|
||||
while me_win==false do
|
||||
print "Guess my number from 1 to 10:"
|
||||
your_number = io.stdin:read'*l'
|
||||
if type(tonumber(your_number))=="number" then
|
||||
your_number=tonumber(your_number)
|
||||
if your_number>10 or your_number<1 then
|
||||
print "Your number was not between 1 and 10, try again."
|
||||
elseif your_number>my_number then
|
||||
print "Your number is greater than mine, try again."
|
||||
elseif your_number<my_number then
|
||||
print "Your number is smaller than mine, try again."
|
||||
elseif your_number==my_number then
|
||||
print "That was correct."
|
||||
me_win=true
|
||||
end
|
||||
else
|
||||
print "Your input was not a number, try again."
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
Module GuessNumber {
|
||||
Read Min, Max
|
||||
chosen = Random(Min, Max)
|
||||
print "guess a whole number between ";Min;" and ";Max
|
||||
do {
|
||||
\\ we use guess so Input get integer value
|
||||
\\ if we press enter without a number we get error
|
||||
do {
|
||||
\\ if we get error then we change line, checking the cursor position
|
||||
If Pos>0 then Print
|
||||
Try ok {
|
||||
input "Enter your number " , guess%
|
||||
}
|
||||
} until ok
|
||||
Select Case guess%
|
||||
case min to chosen-1
|
||||
print "Sorry, your number was too low"
|
||||
case chosen+1 to max
|
||||
print "Sorry, your number was too high"
|
||||
case chosen
|
||||
print "Well guessed!"
|
||||
else case
|
||||
print "That was an invalid number"
|
||||
end select
|
||||
} until guess% = chosen
|
||||
}
|
||||
GuessNumber 5, 15
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
function guess_a_number(low, high)
|
||||
|
||||
if nargin < 1 || ~isnumeric(low) || length(low) > 1 || isnan(low)
|
||||
low = 1;
|
||||
end;
|
||||
if nargin < 2 || ~isnumeric(high) || length(high) > 1 || isnan(high)
|
||||
high = low+9;
|
||||
elseif low > high
|
||||
[low, high] = deal(high, low);
|
||||
end
|
||||
|
||||
n = floor(rand(1)*(high-low+1))+low;
|
||||
gs = input(sprintf('Guess an integer between %i and %i (inclusive): ', low, high), 's');
|
||||
while gs % No guess quits the game
|
||||
g = str2double(gs);
|
||||
if length(g) > 1 || isnan(g) || g < low || g > high
|
||||
gs = input('Invalid input, guess again: ', 's');
|
||||
elseif g < n
|
||||
gs = input('Too low, guess again: ', 's');
|
||||
elseif g > n
|
||||
gs = input('Too high, guess again: ', 's');
|
||||
else
|
||||
disp('Good job, you win!')
|
||||
gs = '';
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
Range = [1,100]
|
||||
randomNumber = (random Range.x Range.y) as integer
|
||||
clearListener()
|
||||
while true do
|
||||
(
|
||||
userVal = getKBValue prompt:("Enter a number between "+(range[1] as integer) as string+" and "+(range[2] as integer) as string+": ")
|
||||
if userVal == randomNumber do (format "\nWell guessed!\n"; exit with OK)
|
||||
case of
|
||||
(
|
||||
(classOf userVal != classof randomNumber): (format "\nBad number!\n")
|
||||
(userVal > Range[2] or userVal < Range[1]): (format "\nNumber out of range\n")
|
||||
(userVal > randomNumber): (format "\nToo high!\n")
|
||||
(userVal < randomNumber): (format "\nToo low!\n")
|
||||
)
|
||||
)
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
Enter a number between 1 and 100: 5
|
||||
Too low!
|
||||
Enter a number between 1 and 100: 9.0
|
||||
Bad number!
|
||||
Enter a number between 1 and 100: 145
|
||||
Number out of range
|
||||
Enter a number between 1 and 100: 95
|
||||
Too low!
|
||||
Enter a number between 1 and 100: 99
|
||||
Too high!
|
||||
Enter a number between 1 and 100: 97
|
||||
Well guessed!
|
||||
OK
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
GuessANumber := proc(low, high)
|
||||
local number, input;
|
||||
randomize():
|
||||
printf( "Guess a number between %d and %d:\n:> ", low, high );
|
||||
number := rand(low..high)();
|
||||
do
|
||||
input := parse(readline());
|
||||
if input > number then
|
||||
printf("Too high, try again!\n:> ");
|
||||
elif input < number then
|
||||
printf("Too low, try again!\n:> ");
|
||||
else
|
||||
printf("Well guessed! The answer was %d.\n", number);
|
||||
break;
|
||||
end if;
|
||||
end do:
|
||||
end proc:
|
||||
|
|
@ -0,0 +1 @@
|
|||
GuessANumber(2,5);
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
guessnumber[min_, max_] :=
|
||||
Module[{number = RandomInteger[{min, max}], guess},
|
||||
While[guess =!= number,
|
||||
guess = Input[
|
||||
If[guess > number, "Too high.Guess again.",
|
||||
"Too low.Guess again.",
|
||||
"Guess a number between " <> ToString@min <> " and " <>
|
||||
ToString@max <> "."]]];
|
||||
CreateDialog[{"Well guessed!", DefaultButton[]}]];
|
||||
guessnumber[1, 10]
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
100 RANDOMIZE
|
||||
110 LET T = 0
|
||||
120 LET N = 20
|
||||
130 LET R = INT(RND *N)+1
|
||||
140 PRINT "GUESS A WHOLE NUMBER BETWEEN 1 AND";N
|
||||
150 REM LOOP
|
||||
160 LET T = T+1
|
||||
170 PRINT "ENTER YOUR NUMBER ";
|
||||
180 INPUT G
|
||||
190 IF G <> R THEN 220
|
||||
200 PRINT "YOU GUESSED IT IN";T;"TRIES."
|
||||
210 GOTO 360
|
||||
220 REM ENDIF
|
||||
230 IF G > R THEN 260
|
||||
240 IF G < 1 THEN 260
|
||||
250 PRINT "SORRY, YOUR NUMBER WAS TOO LOW"
|
||||
260 REM ENDIF
|
||||
270 IF G < R THEN 300
|
||||
280 IF G > 100 THEN 300
|
||||
290 PRINT "SORRY, YOUR NUMBER WAS TOO HIGH"
|
||||
300 REM ENDIF
|
||||
310 IF G >= 1 THEN 320
|
||||
320 IF G <= 100 THEN 340
|
||||
330 PRINT "THAT WAS AN INVALID NUMBER"
|
||||
340 REM ENDIF
|
||||
350 IF G <> R THEN 150
|
||||
360 END
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
def getInput:int
|
||||
s = System.console.readLine()
|
||||
Integer.parseInt(s)
|
||||
end
|
||||
|
||||
number = int(Math.random() * 10 + 1)
|
||||
|
||||
puts "Guess the number between 1 and 10"
|
||||
|
||||
guessed = false
|
||||
|
||||
while !guessed do
|
||||
begin
|
||||
userNumber = getInput
|
||||
if userNumber == number
|
||||
guessed = true
|
||||
puts "You guessed it."
|
||||
elsif userNumber > number
|
||||
puts "Too high."
|
||||
else
|
||||
puts "Too low."
|
||||
end
|
||||
rescue NumberFormatException => e
|
||||
puts "Please enter an integer."
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
MODULE guessf;
|
||||
|
||||
IMPORT InOut, Random, NumConv, Strings;
|
||||
|
||||
VAR number, guess : CARDINAL;
|
||||
input : Strings.String;
|
||||
OK, Done : BOOLEAN;
|
||||
|
||||
BEGIN
|
||||
number := Random.nr (1000);
|
||||
InOut.WriteString ("I have chosen a number below 1000; please try to guess it.");
|
||||
InOut.WriteLn;
|
||||
REPEAT
|
||||
REPEAT
|
||||
InOut.WriteString ("Enter your guess : "); InOut.WriteBf;
|
||||
InOut.ReadString (input);
|
||||
NumConv.Str2Num (guess, 10, input, OK);
|
||||
IF NOT OK THEN
|
||||
InOut.WriteString (input);
|
||||
InOut.WriteString (" is not a valid number...");
|
||||
InOut.WriteLn
|
||||
END
|
||||
UNTIL OK;
|
||||
InOut.WriteString ("Your guess is ");
|
||||
IF number = guess THEN
|
||||
Done := TRUE;
|
||||
InOut.WriteString ("spot on!")
|
||||
ELSE
|
||||
Done := FALSE;
|
||||
IF guess > number THEN
|
||||
InOut.WriteString ("too high.")
|
||||
ELSE
|
||||
InOut.WriteString ("too low.")
|
||||
END
|
||||
END;
|
||||
InOut.WriteLn
|
||||
UNTIL Done;
|
||||
InOut.WriteString ("Thank you for playing; have a nice day!");
|
||||
InOut.WriteLn
|
||||
END guessf.
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
10 NUMBER=RND(10)+1
|
||||
20 INPUT "I'M THINKING OF A NUMBER BETWEEN 1 AND 10. WHAT IS IT? ",GUESS
|
||||
30 IF GUESS>NUMBER THEN PRINT "MY NUMBER IS LOWER THAN THAT.": GOTO 20
|
||||
40 IF GUESS<NUMBER THEN PRINT "MY NUMBER IS HIGHER THAN THAT.": GOTO 20
|
||||
50 PRINT "THAT'S THE CORRECT NUMBER."
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
import Nanoquery.Util
|
||||
|
||||
random = new(Random)
|
||||
inclusive_range = {1, 100}
|
||||
|
||||
print format("Guess my target number that is between %d and %d (inclusive).\n",\
|
||||
inclusive_range[0], inclusive_range[1])
|
||||
target = random.getInt(inclusive_range[1]) + inclusive_range[0]
|
||||
answer = 0
|
||||
i = 0
|
||||
while answer != target
|
||||
i += 1
|
||||
print format("Your guess(%d): ", i)
|
||||
txt = input()
|
||||
|
||||
valid = true
|
||||
try
|
||||
answer = int(txt)
|
||||
catch
|
||||
println format(" I don't understand you input of '%s' ?", txt)
|
||||
value = false
|
||||
end
|
||||
|
||||
if valid
|
||||
if (answer < inclusive_range[0]) or (answer > inclusive_range[1])
|
||||
println " Out of range!"
|
||||
else if answer = target
|
||||
println " Ye-Haw!!"
|
||||
else if answer < target
|
||||
println " Too low."
|
||||
else if answer > target
|
||||
println " Too high."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
println "\nThanks for playing."
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
using System;
|
||||
using System.Console;
|
||||
|
||||
module GuessHints
|
||||
{
|
||||
Main() : void
|
||||
{
|
||||
def rand = Random();
|
||||
def secret = rand.Next(1, 101);
|
||||
mutable guess = 0;
|
||||
|
||||
def GetGuess() : int {Int32.Parse(ReadLine())}
|
||||
|
||||
WriteLine("Guess a number between 1 and 100:");
|
||||
|
||||
do
|
||||
{
|
||||
guess = GetGuess();
|
||||
match(guess.CompareTo(secret))
|
||||
{
|
||||
|(-1) => WriteLine("Too low! Guess again:")
|
||||
|1 => WriteLine("Too high! Guess again:")
|
||||
|0 => WriteLine("Well guessed!")
|
||||
}
|
||||
} while (guess != secret)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
/* NetRexx */
|
||||
options replace format comments java crossref symbols nobinary
|
||||
|
||||
parse arg lo hi .
|
||||
if lo = '' | lo = '.' then lo = 1
|
||||
if hi = '' | hi = '.' then hi = 100
|
||||
if lo > hi then parse (hi lo) lo hi -- make sure lo is < hi
|
||||
rg = Random()
|
||||
tries = 0
|
||||
guessThis = rg.nextInt(hi - lo) + lo
|
||||
|
||||
say
|
||||
say 'Rules: Guess a number between' lo 'and' hi
|
||||
say ' Use QUIT or . to stop the game'
|
||||
say ' Use TELL to get the game to tell you the answer.'
|
||||
say
|
||||
say 'Starting...'
|
||||
say
|
||||
|
||||
loop label g_ forever
|
||||
say 'Try guessing a number between' lo 'and' hi
|
||||
parse ask guess .
|
||||
select
|
||||
when guess.upper = 'QUIT' | guess = '.' then do
|
||||
say 'You asked to leave the game. Goodbye...'
|
||||
leave g_
|
||||
end
|
||||
when guess.upper = 'TELL' | guess = '.' then do
|
||||
say 'The number you were looking for is' guessThis
|
||||
end
|
||||
when \guess.datatype('w') then do
|
||||
say guess 'is not a whole number. Try again.'
|
||||
end
|
||||
when guess = guessThis then do
|
||||
tries = tries + 1
|
||||
say 'Well guessed!' guess 'is the correct number.'
|
||||
say 'It took you' tries 'tries.'
|
||||
leave g_
|
||||
end
|
||||
when guess < lo then do
|
||||
tries = tries + 1
|
||||
say guess 'is below the lower limit of' lo
|
||||
end
|
||||
when guess > hi then do
|
||||
tries = tries + 1
|
||||
say guess 'is above the upper limit of' hi
|
||||
end
|
||||
when guess < guessThis then do
|
||||
tries = tries + 1
|
||||
say guess 'is too low. Try again.'
|
||||
end
|
||||
when guess > guessThis then do
|
||||
tries = tries + 1
|
||||
say guess 'is too high. Try again.'
|
||||
end
|
||||
otherwise do
|
||||
say guess 'is an unexpected value.'
|
||||
end
|
||||
end
|
||||
end g_
|
||||
|
||||
return
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
; guess-number-feedback.lsp
|
||||
; oofoe 2012-01-19
|
||||
; http://rosettacode.org/wiki/Guess_the_number/With_feedback
|
||||
|
||||
(seed (time-of-day)) ; Initialize random number generator from clock.
|
||||
(setq low -5
|
||||
high 62
|
||||
number (+ low (rand (- high low)))
|
||||
found nil
|
||||
)
|
||||
|
||||
(print "I'm thinking of a number between " low " and " high ".")
|
||||
|
||||
(while (not found)
|
||||
(print " What's your guess? ")
|
||||
(setq guess (int (read-line) 'bad))
|
||||
(print (cond ((= 'bad guess) "That's not a number! Try again!")
|
||||
((or (< guess low) (> guess high))
|
||||
(string "My number is between " low
|
||||
" and " high ". Try again!"))
|
||||
((< number guess) "Try a little lower...")
|
||||
((> number guess) "Maybe a bit higher...")
|
||||
((= number guess) (setq found true) "Exactly right!")))
|
||||
)
|
||||
|
||||
(println "\nWell guessed! Congratulations!")
|
||||
|
||||
(exit)
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
import random, strutils
|
||||
|
||||
randomize()
|
||||
|
||||
let iRange = 1..100
|
||||
|
||||
echo "Guess my target number that is between ", iRange.a, " and ", iRange.b, " (inclusive)."
|
||||
let target = rand(iRange)
|
||||
var answer, i = 0
|
||||
while answer != target:
|
||||
inc i
|
||||
stdout.write "Your guess ", i, ": "
|
||||
let txt = stdin.readLine()
|
||||
try: answer = parseInt(txt)
|
||||
except ValueError:
|
||||
echo " I don't understand your input of '", txt, "'"
|
||||
continue
|
||||
if answer notin iRange: echo " Out of range!"
|
||||
elif answer < target: echo " Too low."
|
||||
elif answer > target: echo " Too high."
|
||||
else: echo " Ye-Haw!!"
|
||||
|
||||
echo "Thanks for playing."
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
let rec _read_int() =
|
||||
try read_int()
|
||||
with _ ->
|
||||
print_endline "Please give a cardinal numbers.";
|
||||
(* TODO: what is the correct word? cipher, digit, figure or numeral? *)
|
||||
_read_int() ;;
|
||||
|
||||
let () =
|
||||
print_endline "Please give a set limits (two integers):";
|
||||
let a = _read_int()
|
||||
and b = _read_int() in
|
||||
let a, b =
|
||||
if a < b
|
||||
then (a, b)
|
||||
else (b, a)
|
||||
in
|
||||
Random.self_init();
|
||||
let target = a + Random.int (b - a) in
|
||||
Printf.printf "I have choosen a number between %d and %d\n%!" a b;
|
||||
print_endline "Please guess it!";
|
||||
let rec loop () =
|
||||
let guess = _read_int() in
|
||||
if guess = target then
|
||||
begin
|
||||
print_endline "The guess was equal to the target.\nCongratulation!";
|
||||
exit 0
|
||||
end;
|
||||
if guess < a || guess > b then
|
||||
print_endline "The input was inappropriate."
|
||||
else if guess > target then
|
||||
print_endline "The guess was higher than the target."
|
||||
else if guess < target then
|
||||
print_endline "The guess was less than the target.";
|
||||
loop ()
|
||||
in
|
||||
loop ()
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
use IO;
|
||||
|
||||
bundle Default {
|
||||
class GuessNumber {
|
||||
function : Main(args : String[]) ~ Nil {
|
||||
Guess();
|
||||
}
|
||||
function : native : Guess() ~ Nil {
|
||||
done := false;
|
||||
"Guess the number which is between 1 and 10 or 'n' to quite: "->PrintLine();
|
||||
rand_num := (Float->Random() * 10.0)->As(Int) + 1;
|
||||
while(done = false) {
|
||||
guess := Console->ReadString();
|
||||
number := guess->ToInt();
|
||||
if(number <> 0) {
|
||||
if(number <> rand_num) {
|
||||
Console->Print("Your guess was too ")
|
||||
->Print(number < rand_num ? "low" : "high")
|
||||
->Print(".\nGuess again: ");
|
||||
}
|
||||
else {
|
||||
"Hurray! You guessed correctly!"->PrintLine();
|
||||
done := true;
|
||||
};
|
||||
}
|
||||
else {
|
||||
if(guess->StartsWith("q") | guess->StartsWith("Q")) {
|
||||
done := true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
function guess_a_number(low,high)
|
||||
% Guess a number (with feedback)
|
||||
% http://rosettacode.org/wiki/Guess_the_number/With_feedback
|
||||
|
||||
if nargin<1,
|
||||
low=1;
|
||||
end;
|
||||
if nargin<2,
|
||||
high=10;
|
||||
end;
|
||||
|
||||
n = floor(rand(1)*(high-low+1))+low;
|
||||
[guess,state] = str2num(input(sprintf('Guess a number between %i and %i: ',low,high),'s'));
|
||||
while (~state || guess~=n)
|
||||
if guess < n,
|
||||
g = input('to low, guess again: ','s');
|
||||
[guess, state] = str2num(g);
|
||||
elseif guess > n,
|
||||
g = input('to high, guess again: ','s');
|
||||
[guess, state] = str2num(g);
|
||||
end;
|
||||
while ~state
|
||||
g = input('invalid input, guess again: ','s');
|
||||
[guess, state] = str2num(g);
|
||||
end
|
||||
end
|
||||
disp('Well guessed!')
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import: console
|
||||
|
||||
: guessNumber(a, b)
|
||||
| n g |
|
||||
b a - rand a + 1- ->n
|
||||
begin
|
||||
"Guess a number between" . a . "and" . b . ":" .
|
||||
while(System.Console askln asInteger dup -> g isNull) [ "Not a number " println ]
|
||||
g n == ifTrue: [ "You found it !" .cr return ]
|
||||
g n < ifTrue: [ "Less" ] else: [ "Greater" ] . "than the target" .cr
|
||||
again ;
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
(import (otus random!))
|
||||
|
||||
(define from 0)
|
||||
(define to 100)
|
||||
|
||||
(define number (+ from (rand! (+ from to 1))))
|
||||
|
||||
(let loop ()
|
||||
(for-each display `("Pick a number from " ,from " through " ,to ": "))
|
||||
(let ((guess (read)))
|
||||
(cond
|
||||
((not (number? guess))
|
||||
(print "Not a number!")
|
||||
(loop))
|
||||
((or (< guess from)
|
||||
(< to guess))
|
||||
(print "Out of range!")
|
||||
(loop))
|
||||
((< guess number)
|
||||
(print "Too low!")
|
||||
(loop))
|
||||
((> guess number)
|
||||
(print "Too high!")
|
||||
(loop))
|
||||
((= guess number)
|
||||
(print "Well guessed!")))))
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
/*REXX program that plays the guessing (the number) game. */
|
||||
low=1 /*lower range for the guessing game.*/
|
||||
high=100 /*upper range for the guessing game.*/
|
||||
try=0 /*number of valid attempts. */
|
||||
r=random(1,100) /*get a random number (low-->high). */
|
||||
|
||||
do forever
|
||||
say
|
||||
say "guess the number, it's between" low 'and' high '(inclusive)',
|
||||
'or enter quit to end the game.'
|
||||
say
|
||||
pull g
|
||||
say
|
||||
g=space(g)
|
||||
Select
|
||||
When g='' then iterate
|
||||
When g='QUIT' then exit
|
||||
When g='?' then Do
|
||||
Say 'The number you are looking for is' r
|
||||
Iterate
|
||||
End
|
||||
When \datatype(g,'W') then do
|
||||
call ser g "isn't a valid number"
|
||||
iterate
|
||||
end
|
||||
When g<low then do
|
||||
call ser g 'is below the lower limit of' low
|
||||
iterate
|
||||
end
|
||||
When g>high then do
|
||||
call ser g 'is above the higher limit of' high
|
||||
iterate
|
||||
end
|
||||
When g=r then do
|
||||
try=try+1
|
||||
Leave
|
||||
End
|
||||
Otherwise Do
|
||||
try=try+1
|
||||
if g>r then what='high'
|
||||
else what='low'
|
||||
say 'your guess of' g 'is too' what'.'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
say
|
||||
tries='tries'
|
||||
if try=1 then
|
||||
say 'Congratulations!, you guessed the number in 1 try. Did you cheat?'
|
||||
Else
|
||||
say 'Congratulations!, you guessed the number in' try 'tries.'
|
||||
say
|
||||
exit
|
||||
|
||||
ser: say; say '*** error ! ***'; say arg(1); say; return
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
guess_the_number(N=10)={
|
||||
a=random(N);
|
||||
print("guess the number between 0 and "N);
|
||||
for(x=1,N,
|
||||
if(x>1,
|
||||
if(b>a,
|
||||
print("guess again lower")
|
||||
,
|
||||
print("guess again higher")
|
||||
);
|
||||
b=input();
|
||||
if(b==a,break())
|
||||
);
|
||||
print("You guessed it correctly")
|
||||
};
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
session_start();
|
||||
|
||||
if(isset($_SESSION['number']))
|
||||
{
|
||||
$number = $_SESSION['number'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$_SESSION['number'] = rand(1,10);
|
||||
}
|
||||
|
||||
|
||||
if($_POST["guess"]){
|
||||
$guess = htmlspecialchars($_POST['guess']);
|
||||
|
||||
echo $guess . "<br />";
|
||||
if ($guess < $number)
|
||||
{
|
||||
echo "Your guess is too low";
|
||||
}
|
||||
elseif($guess > $number)
|
||||
{
|
||||
echo "Your guess is too high";
|
||||
}
|
||||
elseif($guess == $number)
|
||||
{
|
||||
echo "You got the correct number!";
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>Guess A Number</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<form action="<?=$_SERVER['PHP_SELF'] ?>" method="post" name="guess-a-number">
|
||||
<label for="guess">Guess A Number:</label><br/ >
|
||||
<input type="text" name="guess" />
|
||||
<input name="number" type="hidden" value="<?= $number ?>" />
|
||||
<input name="submit" type="submit" />
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
sub prompt {
|
||||
my $prompt = shift;
|
||||
while (1) {
|
||||
print "\n", $prompt, ": ";
|
||||
# type ^D, q, quit, quagmire, etc to quit
|
||||
defined($_ = <STDIN>) and !/^\s*q/ or exit;
|
||||
|
||||
return $_ if /^\s*\d+\s*$/s;
|
||||
$prompt = "Please give a non-negative integer";
|
||||
}
|
||||
}
|
||||
|
||||
my $tgt = int(rand prompt("Hola! Please tell me the upper bound") + 1);
|
||||
my $tries = 1;
|
||||
|
||||
$tries++, print "You guessed too ", ($_ == -1 ? "high" : "low"), ".\n"
|
||||
while ($_ = $tgt <=> prompt "Your guess");
|
||||
|
||||
print "Correct! You guessed it after $tries tries.\n";
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue