Hi Jim, Your interval bisection program should take 7 guesses max. I will take a quick look, but I have to go out soon and someone else may answer in the interim. And there is a bisect (or something) module in Python. Richard ----- Original Message ----- From: Homme, James To: programmingblind@xxxxxxxxxxxxx Sent: Friday, October 15, 2010 11:19 AM Subject: Python: Help With Beginner Stuff Hi, I know more than what I'm showing in this program, but I'm taking my learning back so as not to miss anything crucial. The book I'm reading is in the Jamal collection of Python docs. It's called "Python Programming for the absolute beginner." I'm doing the Chapter 3 assignment. The assignment was to write pseudocode for a program that would simulate the computer guessing a number from 1 to 100. I wrote the pseudocode. That made me confident enough to take a stab at writing the program. What follows is my program and one set of output from it. My question is this. It seems like the way I have worked it out, the computer is always guessing 10 or 11 times to get the answer. How can I make the simulation a little more realistic? === begin program === # comp_guess.py # By Jim Homme # October 15, 2010 # Simulate the computer guessing a number between 1 and 100 until it guesses correctly. import random lower = 1 upper = 100 answer = int(raw_input("Give me a number between 1 and 100 for the computer to guess: ")) print "\nThe answer is %d." % (answer) comp_guess = random.randint(lower, upper) # The computer makes a guess guesses = 1 print "For guess %d, the computer guessed %d." % (guesses, comp_guess) while comp_guess != answer: if comp_guess < answer: print "The computer guessed too low." lower = comp_guess +1 # So it won't guess the same number again. print "lower is now %d." % (lower) else: print "The guess is too high." upper = comp_guess -1 # So it won't guess the number again. print "upper is now %d." % (upper) guesses += 1 comp_guess = random.randint(lower, upper) # Guess again. print "For guess %d, the computer guessed %d." % (guesses, comp_guess) # The final guess. print "The computer guessed the number in %d guesses" % (guesses) print "Can you beat that?" raw_input("Press Enter to quit") === End program === === Begin output === Give me a number between 1 and 100 for the computer to guess: The answer is 44. For guess 1, the computer guessed 89. The guess is too high. upper is now 88. For guess 2, the computer guessed 35. The computer guessed too low. lower is now 36. For guess 3, the computer guessed 82. The guess is too high. upper is now 81. For guess 4, the computer guessed 37. The computer guessed too low. lower is now 38. For guess 5, the computer guessed 65. The guess is too high. upper is now 64. For guess 6, the computer guessed 52. The guess is too high. upper is now 51. For guess 7, the computer guessed 41. The computer guessed too low. lower is now 42. For guess 8, the computer guessed 48. The guess is too high. upper is now 47. For guess 9, the computer guessed 47. The guess is too high. upper is now 46. For guess 10, the computer guessed 43. The computer guessed too low. lower is now 44. For guess 11, the computer guessed 44. The computer guessed the number in 11 guesses Can you beat that? Press Enter to quit === End Output === Jim Homme, Usability Services, Phone: 412-544-1810. Skype: jim.homme Internal recipients, Read my accessibility blog. Discuss accessibility here. Accessibility Wiki: Breaking news and accessibility advice ------------------------------------------------------------------------------ This e-mail and any attachments to it are confidential and are intended solely for use of the individual or entity to whom they are addressed. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not keep, use, disclose, copy or distribute this e-mail without the author's prior permission. The views expressed in this e-mail message do not necessarily represent the views of Highmark Inc., its subsidiaries, or affiliates.