How to resolve the algorithm Guess the number/With feedback step by step in the CLU programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Guess the number/With feedback step by step in the CLU programming language

Table of Contents

Problem Statement

Write a game (computer program) that follows the following rules:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Guess the number/With feedback step by step in the CLU programming language

Source code in the clu programming language

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

  

You may also check:How to resolve the algorithm Ulam spiral (for primes) step by step in the Racket programming language
You may also check:How to resolve the algorithm Loops/Break step by step in the REBOL programming language
You may also check:How to resolve the algorithm Towers of Hanoi step by step in the XBasic programming language
You may also check:How to resolve the algorithm Literals/Integer step by step in the PARI/GP programming language
You may also check:How to resolve the algorithm Execute HQ9+ step by step in the JavaScript programming language