2013-09-09 4 views
-4

Вчера я задал вопрос об этой программе, но я столкнулся с другой проблемой. Код по-прежнему работает и думает, что он окрашивается в пиксели, но он должен остановиться, когда нижняя часть страницы достигнута, это не так.Эта же программа снова

Вот код:

import pygame,sys, random, time 
y = 0 
x = 0 
keepgoing = True 
pygame.init() 
screen = pygame.display.set_mode((500,500)) 
pixel = raw_input('Please enter a NUMBER that goes into 500. ') 
end = 500-(int(pixel)) 
int(pixel) 
screen.fill((255,255,255)) 

while keepgoing: 
    print x,y 
    r = random.randint(0,255) 
    g = random.randint(0,255) 
    b = random.randint(0,255) 
    pygame.draw.rect(screen, (r,g,b),(x,y,int(pixel),int(pixel))) 
    if x >= end: 
     x = 0 
     y += int(pixel) 
     r = random.randint(0,255) 
     g = random.randint(0,255) 
     b = random.randint(0,255) 
    pygame.draw.rect(screen, (r,g,b),(x,y,int(pixel),int(pixel))) 
    if x == end and y == end: 
     print 'done' 
     keepgoing == False 
     break 
    x += (int(pixel)) 

    pygame.display.update() 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      pygame.quit(); sys.exit(); 



for event in pygame.event.get(): 

    if event.type == pygame.QUIT: 
     pygame.quit(); sys.exit(); 

вы увидите, что я имею в виду, если вы запустите код питона IDLE.

+0

Не можете ли вы сделать вложенные петли и цикл через пиксели x и y-пиксели? –

+0

Вы должны отредактировать свой вопрос, чтобы выяснить, в чем проблема. Когда вы снова повторяете ту же проблему, как мы можем знать, что вы имеете в виду? – Bonifacio2

+1

@ Bonifacio2 он говорит «То же ** программа ** снова» – RickyA

ответ

1

Попробуйте изменить:

if x >= end: 

To:

if x >= end and y <= end: 

Кроме того, изменение:

keepgoing == False 

To:

keepgoing = False 

Кроме того, рассмотреть вопрос об изменении:

if x == end and y == end: 

To:

if x >= end and y >= end: 

Примечание: Вы, вероятно, следует использовать вложенными для цикла и цикл через рентгеновскими пикселей и у-пикселей. Это может быть лучше, чем использование while-loop.

0

Почему бы просто не использовать петлю for?

from itertools import product 
for x, y in product(range(end), repeat=2): 
    ... 
0
keepgoing == False 

== делает сравнение проверка. Вы хотите

keepgoing = False 
Смежные вопросы