2013-12-21 88 views
0

我有这样的代码:嵌套的循环不正常

def makeBoard(): 
    squareX = 0 
    squareY = 0 
    squareType = "dark" 
    darkSquare = imageLoader("darkBrownSquare.png") 
    lightSquare = imageLoader("lightBrownSquare.png") 
    for x in range(8): 
     for y in range(8): 
      if squareType == "dark": 
       MAIN_SURF.blit(darkSquare, (squareX, squareY)) 
       squareType = "light" 
      elif squareType == "light": 
       MAIN_SURF.blit(lightSquare, (squareX, squareY)) 
       squareType = "dark" 
      squareY += 64 
     squareX += 64 

这意味着要画一个棋盘图案,但我只得到这个代替: enter image description here 我想这是因为for循环,而事实他们是嵌套的,但除此之外,我不知道。

回答

1

完成其循环后,您需要将squareY归零。

所以经过

squareX +=64 

只需添加

squareY = 0 

此外,你可以,如果你使用范围功能步参数写一个更可读的代码,并使用替代squareX和squareY x和y(这也将处理此错误)

0

摆脱squareXsquareY的东西,只是创建正确的值从一开始和y

for x in range(0, 64, 8): 
    for y in range(0, 64, 8): 

或者乘他们通过8

MAIN_SURF.blit(darkSquare, (8 * x, 8 * y))