Python新手:Turtle 25 square棋盘使用循环

时间:2017-10-16 18:57:20

标签: python turtle-graphics

def main():
    square(0,0,50,'red')


def square(x,y,width,color):  

    turtle.penup()  
    turtle.goto(0,0)  
    turtle.fillcolor(color)  
    turtle.pendown()  
    turtle.begin_fill()

    for number in range(5):
        for count in range(4):
            turtle.forward(width)
            turtle.left(90)
        turtle.end_fill()
        x = x+50
        turtle.goto(x,y)


    turtle.showturtle()

调用主函数

main()

这给了我一行5个方格。我如何编写外部循环来绘制4个以上 这样的5个方块的行 - 一个5乘5的棋盘?

2 个答案:

答案 0 :(得分:0)

你已经有代码来绘制一行正方形,这就是你现在拥有的循环。

您希望该代码运行5次,因此只需将其包装在另一个循环中,确保根据需要修改变量。有点像这样:

for i in range(5):  
    for number in range(5):
        for count in range(4):
            turtle.forward(width)
            turtle.left(90)
        turtle.end_fill()
        x += width
        turtle.goto(x,y)
    x -= 5*width
    y += width

还有关于样式的注释,square()忽略了大部分参数。无论xy的值如何,您都要将乌龟硬编码为(0,0)。由于您之后的goto使用了这些值,因此如果您将代码设置为0以外的任何值,代码就会中断。您的行x = x+50也会忽略width的值,即使该行{乌龟画使用它。同样,如果你把它设置为50以外的任何东西,这将会破坏。

答案 1 :(得分:0)

我简化了你的“方形”功能,只画了一个正方形。然后我添加了一个单独的函数,其中包含一个调用square函数的嵌套循环。 试图保持简单,只对每个功能负责:

import turtle

def main():
    board(5, 5, 50)
    input("Hit enter to close")

def square(x,y,width,color):
    turtle.penup()  
    turtle.fillcolor(color)  
    turtle.goto(x, y)
    turtle.pendown()
    turtle.begin_fill()
    for side in range(4):
        turtle.forward(width)
        turtle.left(90)
    turtle.end_fill()

def board(rows, columns, square_width):
    turtle.showturtle()
    for row in range(rows):
        for column in range(columns):
            color = "red" if (row + column)%2 == 1 else "white"
            square(row*square_width, column*square_width, square_width, color)
    turtle.hideturtle()