import turtle def main(): turtle.pensize(4) for x in range(5): for y in range(5): turtle.penup() turtle.goto(x*50,y*50) turtle.pendown() if (x+y)%2 == 0: turtle.begin_fill() black_square(50) turtle.end_fill() else: turtle.begin_fill() white_square(50) turtle.end_fill() def black_square(width): turtle.fillcolor('black') for x in range(4): turtle.forward(width) turtle.left(90) def white_square(width): turtle.fillcolor('white') for x in range(4): turtle.forward(width) turtle.right(90) main()
Current image:
Intended image:
My code won’t draw a correct checkerboard pattern, but I wonder why every for loop my square black and white both executed at the same time? I am not asking for the correct code that will get me the correct checkerboard and I just want an explanation for the mistakes in my code.
Advertisement
Answer
I don’t know how to explain your mistakes without giving you the correct code, but I will try:
basically the mistake is that black_square and white_square are drawing squares at the same location. The starting point is 50 units apart, but because the squares are drawn in opposite directions (clockwise and counter-clockwise), the resulting area overlaps. black_square would draw a square below the starting point, while white_square would draw a square above its starting point.