[Tutor] Help with Guess the number script
spir
denis.spir at gmail.com
Fri Mar 7 13:26:07 CET 2014
On 03/07/2014 06:30 AM, Scott W Dunning wrote:
> I am trying to write a script for class for a game called guess the number. I’m almost done but, I’m having a hard time getting the hints to print correctly. I’ve tried ‘if’’ ‘elif’ nested, it seems like everything….I’m posting my code for the hints below, any help is greatly appreciated!
>
> def print_hints(secret, guess):
> if guess < 1 or guess > 101:
> print
> print "Out of range!"
> print
> if guess < secret:
> print
> print "Too low!"
> elif guess < (secret - 10) or guess > (secret - 10):
> print "You are cold!"
> print
> print "Please play again!"
> elif guess < (secret - 5) or guess > (secret - 5):
> print "You are warmer!"
> print
> else:
> print "You're on fire!!"
>
> if guess > secret:
> print
> print "Too high!"
> print
> elif guess < (secret - 10) or guess > (secret - 10):
> print "You are cold!"
> print
> elif guess < (secret - 5)or guess > (secret - 5):
> print "You are warmer!"
> print
> print "Please play again!"
> else:
> print "You're on fire!!"
>
>
> Thanks again!!
>
> Scott
You are providing 3 kinds of hints to the player, and trying to mix 2 of them
_cleverly_ in code, which leads to confusion. Much more clever in fact, in 99%
cases, not to try to clever, because programming is difficult enough;
programming provides us with high challenges to your limited mind, whether or
not we add to the difficulty with supposed clever tricks.
clever programming is stupid
stupid programming is clever
The three kinds of hints are:
* whether or not the guess is in interval; this must be done first, and apart,
which you do well; but when it is not the case, you can quit the function
immediately: the other tests & honts make no sense; right? challenge: update
your design so that the program tells whether the guess is in _present_
interval, instead of the _initial_ one
* too high, too low, or found (and "on fire"); in the latter case, you can quit
the function
* whether "cold", "warmer", or in-between; this only makes sense if guess is in
interval, and not found; note that in fact depends on the _absolute_ difference
Another logic is to reverse the last two hints: first deal with the
"temperature" hints, including "on fire"; then only say high/low, when in
interval and not found / not "on fire". I guess this more corresponds to what
you were trying to express.
d
More information about the Tutor
mailing list