On Thu, 10 Nov 2005 13:30:05 +0000, Norman Silverstone wrote: >> In that case, think of "bisection". Originally, all the computer knows >> is that the number is in some range, say 0 to 100. It can then guess >> the midpoint, 50. If it's right, yay! Otherwise: if it's told to go >> lower, then the range is now 0 to 49 -- if higher, it's 51 to 100; in >> each case the range was just halved (actually, a bit more than halved). > > Thank you, I thought that might be the case. So, I will have to settle > down and try to write some pseudo-code first. I hope to be back.
Heh, you will find that Python is practically executable pseudo-code! Untested: def guess_number(): # please don't cheat the poor computer... print "Guess a number." lo = 0 hi = 100 while True: guess = (lo+hi)//2 ans = raw_input("Is it %d? y/n " % guess) if ans in ('y', 'yes'): break ans = raw_input("Too high? y/n ") if ans in ("y", "yes"): hi = guess-1 else: lo = guess+1 This should run, and it will *almost* do what you want. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list