Python Program to Draw a Square and Chess Board Using Turtle
For simple drawing, python provides a built-in module named turtle. This behaves like a drawing board and you can use various drawing commands to draw over it. The basic commands control the movement of the drawing pen itself. We start with a very basic drawing program and work our way through to draw a complete chess board using python turtle.
The following python program draws a square shape using the basic turtle commands,
import turtle board = turtle.Turtle() board.forward(100) # move forward board.right(90) # turn pen right 90 degrees board.forward(100) board.right(90) board.forward(100) board.right(90) board.forward(100) board.right(90) turtle.done()
This can be easily encapsulated into a simple box function as shown below,
import turtle def draw_box(t): for i in range(0,4): board.forward(100) # move forward board.right(90) # turn pen right 90 degrees board = turtle.Turtle() draw_box(board) turtle.done()
But what if we want to draw different squares at different locations? The following python program shows how it can be done using turtle commands. The draw_box() function is enhanced to draw the square at a specific location. The following program draws a 3x3 grid of 30 pixel boxes.
import turtle def draw_box(t,x,y,size): t.penup() # no drawing! t.goto(x,y) # move the pen to a different position t.pendown() # resume drawing for i in range(0,4): board.forward(size) # move forward board.right(90) # turn pen right 90 degrees board = turtle.Turtle() start_x = 50 # starting x position of the grid start_y = 50 # starting y position of the grid box_size = 30 # pixel size of each box in the grid for i in range(0,3): # 3x3 grid for j in range(0,3): draw_box(board,start_x + j*box_size, start_y + i*box_size, box_size) turtle.done()
Let us now enhance the above python program to draw a chess board. This program illustrates the use of color in turtle drawing,
import turtle def draw_box(t,x,y,size,fill_color): t.penup() # no drawing! t.goto(x,y) # move the pen to a different position t.pendown() # resume drawing t.fillcolor(fill_color) t.begin_fill() # Shape drawn after this will be filled with this color! for i in range(0,4): board.forward(size) # move forward board.right(90) # turn pen right 90 degrees t.end_fill() # Go ahead and fill the rectangle! def draw_chess_board(): square_color = "black" # first chess board square is black start_x = 0 # starting x position of the chess board start_y = 0 # starting y position of the chess board box_size = 30 # pixel size of each square in the chess board for i in range(0,8): # 8x8 chess board for j in range(0,8): draw_box(board,start_x+j*box_size,start_y+i*box_size,box_size,square_color) square_color = 'black' if square_color == 'white' else 'white' # toggle after a column square_color = 'black' if square_color == 'white' else 'white' # toggle after a row! board = turtle.Turtle() draw_chess_board() turtle.done()
Following is the chess board output from the above python program,