嵌套for循环不起作用

时间:2013-12-21 00:26:45

标签: for-loop python-3.x pygame

我有这段代码:

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循环,以及它们是嵌套的事实,但除此之外,我不知道。

2 个答案:

答案 0 :(得分:1)

完成循环后你需要将squareY归零。

所以

之后
squareX +=64

添加

squareY = 0

此外,如果使用范围函数步骤参数并使用x和y而不是squareX和squareY(这也将处理此错误),您可以编写更易读的代码。

答案 1 :(得分:0)

摆脱squareXsquareY内容,只需从头开始创建xy的正确值:

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

或者将它们乘以8

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