import turtle
def main():
t=turtle
s=int(input("Enter the length of each square: "))
t.screensize(2000,2000,"lightblue")
for row in range(0,5):
for column in range(0,5):
if (row+column)%2==0:
t.pendown()
t.fillcolor("black")
t.begin_fill()
square(s,row,column)
else:
t.pendown()
t.fillcolor("white")
t.begin_fill()
square(s,row,column)
t.goto(s+row*s,s+column*s)
def square(s,row,column):
t=turtle
t.penup()
n=0
for count in range(4):
t.pendown()
t.forward(s)
t.left(90)
t.end_fill()
t.penup()
main()
所以今天我接到了一项任务,要求我创建一个5乘5的棋盘格。到目前为止,我有这个代码,它设法创建大部分棋盘格。但是,我仍然在某个地方犯了错误,或者我错过了一些关键信息。
附图显示了错误程序的样子。
程序通过创建黑色方块开始,可以在左下角看到。然后它一直工作到右上角,可以看到空白区域。
请帮忙。
答案 0 :(得分:1)
答案 1 :(得分:0)
将t.goto(s+row*s,s+column*s)
移动到内部for循环的开头就可以了。
基本上我们需要先将乌龟移动到起始位置然后开始绘制。
我还清理了代码,将冗余行放在square
函数中。
另外,添加t.penup()
以便乌龟在到达起始位置并开始绘制之前不会显示绘图。
import turtle
def main():
t=turtle
t.penup()
s=int(input("Enter the length of each square: "))
t.screensize(2000,2000,"lightblue")
for row in range(0,5):
for column in range(0,5):
t.goto(s+row*s,s+column*s)
if (row+column)%2==0:
square(s,row,column,"black")
else:
square(s,row,column,"white")
def square(s,row,column,color):
t=turtle
t.pendown()
t.fillcolor(color)
t.begin_fill()
t.penup()
n=0
for count in range(4):
t.pendown()
t.forward(s)
t.left(90)
t.end_fill()
t.penup()
main()
答案 2 :(得分:0)
Anil_M几分钟就打败了我;但我想提供一些额外的代码清理,因为你有太多不必要的penup
,pendown
和不必要的参数传递。
试试这个:
import turtle
t = turtle.Turtle()
t.speed(0)
def main():
s=int(input("Enter the length of each square: "))
for row in range(5):
for column in range(5):
if (row+column)%2==0:
color = "black"
else:
color = "white"
t.penup()
t.goto(row*s,column*s)
t.pendown()
filled_square(s, color)
def filled_square(s, color):
t.fillcolor(color)
t.begin_fill()
for count in range(4):
t.forward(s)
t.left(90)
t.end_fill()
main()