On Dec 7, 2007 2:36 PM, Scottie Hotchkiss <[EMAIL PROTECTED]> wrote: > Disclaimer: I can't test this while I'm at work, but using > > "while 1:" > > instead of > > "while time.time() - start < 30.0" > > would be better. > > In the former case if you press enter after time has run out, it won't > print the time, in the latter you could potentially make a correct > answer after time has run out. > > Example: At 29.0 you answer > raw_input awaits and you wait 5 minutes, then answer. > It will still run the print statement. The loop started and it doesn't > matter how long you wait, because it won't evaluate that until the loop > starts again. > > But it may alright depending on what you are trying to accomplish. > > Just my 2 cents, > S Hotchkiss > > Tutor Lurker >
Okay! Here's a sample 30-second Adding Game using time.time() and a while True: loop. The timing granularity isn't all that great. Sometimes it times out 2 or 3 seconds past 30 seconds, but in this case, it probably isn't a big deal. This has been tested with Python 2.4.3 running on Linux kernel 2.6.15 from the vim editor! #!/usr/bin/python import random import time startNum = random.choice(range(1, 9)) score = 0 print "#"*65 print " "*14,"Welcome to the 30-second Adding Game!" print "#"*65 print " "* 5,"Instructions:" print " "*10,"You'll choose a number." print " "*10,"You'll be given a starting number." print " "*10,"Add the number you chose to the starting number," print " "*10,"then keep adding your number to the sum until" print " "*10,"the timer runs out." print " "*10,"You'll have 30 seconds." print " "* 5, num2add = raw_input(" Choose a number to add: ") print raw_input(" Press <Enter> when you're ready to begin.") print "#"*65 num2add = int(num2add) # interpolation newNum = startNum + num2add print " Start with the number ", startNum start = time.time() while True: if time.time() - start < 30.0: answer = int(raw_input(" Enter your answer: ")) if answer == newNum: print " That is correct! Keep going." score = score + 5 newNum = newNum + num2add print " Your score is ", score else: print " That is incorrect. Please try again." print " Hurry! You only have %2.1f seconds left!"\ % (30 - (time.time() - start)) else: break print " Buzzz!!! Time's up!" print time.time() - start #print "\n" print " Your total score was: ", score Happy Programming! -- b h a a l u u at g m a i l dot c o m http://www.geocities.com/ek.bhaaluu/python/index.html _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor