Weird Loop Behaviour

Arnaud Delobelle arnodel at gmail.com
Fri Jan 20 18:10:44 EST 2012


On 20 January 2012 20:47, Yigit Turgut <y.turgut at gmail.com> wrote:
> Hi,
>
> In the following code, I am trying to run "black" screen for 3 seconds
> and respectively 2 seconds "white" screen. Black routine takes 3
> seconds and white 2 seconds, 2 x black + white = 8 seconds which
> should be the expected value but when I run it I get black-white-black-
> white   instead of black-white-black. Couldn't figure out what is
> wrong thus sharing the code as well ;
>
> white = False
>     while(end<8.00):
>      end = time.time() - start
>      if white:
>       screen.fill((255, 255, 255))
>        time.sleep(2)
>      else:
>        screen.fill((0, 0, 0))
>        time.sleep(3)
>      white = not white
>      pygame.display.update()
>     pygame.quit()

This is cryptic.  You'd be better off with something like

black = 0, 0, 0
white = 255, 255, 255
for color, wait in (black, 3), (white, 2), (black, 3):
    screen.fill(color)
    pygame.display.update()
    time.sleep(wait)
pygame.quit()

-- 
Arnaud



More information about the Python-list mailing list