Python Basics

How to draw chessboard in Python Turtle?

Chess is one of the most popular indoor game that is played on a chessboard. The chessboard has a squared shape and consists of sixty-four subdivisions. Here, subdivisions are painted with alternate colors. Keeping this thing in mind, we will draw chessboard in turtle.

Several functions from the turtle library will be used. These are- forward(), right(), penup(), pendown(), goto(), fillcolor(), begin_fill() and end_fill().

#Program to draw chessboard in Python Turtle
import turtle
chessboard = turtle.Turtle()
chessboard.speed(8) #for speedily drawing chessboard
for i in range(4): #for loop will run 4 times
	chessboard.forward(800) #forward turtle by 800 units
	chessboard.right(90) #turn turtle clockwise by 90 degree
a = 0 #for controlling alternate colors in a row
b = 0 #for controlling alternate colors in a column
for i in range(8): #for loop will run 8 times as there are 8 rows in the chessboard
	if(b == 0):
		a=1
	else:
		a=0
	for j in range(8): #for loop will run 8 times as there are 8 columns in the chessboard
		chessboard.penup()
		chessboard.goto(j*100, i*100*(-1))
		chessboard.pendown()
		if(a==0):
			chessboard.fillcolor('black')
			a=1
		else:
			chessboard.fillcolor('white')
			a=0
		chessboard.begin_fill()
		for k in range(4):
			chessboard.forward(100)
			chessboard.right(90)
		chessboard.end_fill()
	if(b==0):
		b=1
	else:
		b=0

Output of the above program-

Chessboard in Python Turtle

Explanation of the above code-

import turtle
chessboard = turtle.Turtle()

To work with turtle module, you have to import it. After importing this module, you have to create a new drawing board and assign it to an object chessboard.

for i in range(4):
   chessboard.forward(800)
   chessboard.right(90)

We have moved the turtle in the forward direction by 800 units. Because the length of the outer boundary of the chessboard is 800 units. Then, we have turned the turtle by 90° as the angle between adjacent sides is 90°. This finishes one side of the chessboard. These same statements are repeated 3 times to obtain the remaining boundary of the chessboard.

for i in range(8):
   if(b == 0):
      a=1
   else:
      a=0

b variable will be used to control the color of first square of each row.

Chessboard Coordinates
for j in range(8):
   chessboard.penup()
   chessboard.goto(j*100, i*100*(-1))
   chessboard.pendown()
   if(a==0):
      chessboard.fillcolor('black')
	  a=1
   else:
      chessboard.fillcolor('white')
	  a=0
   chessboard.begin_fill()
   for k in range(4):
      chessboard.forward(100)
	  chessboard.right(90)
   chessboard.end_fill()

The above for loop will control the drawing of squares in a row. goto() will move the turtle to a specific left corner of a square. If the value of a is equal to 0 then we have set the fillcolor to black and otherwise we have set the fillcolor to white. After this, we have called begin_fill() to start filling the square with the selected fillcolor. Then, we have drawn the square of 100 units side.

Recommended Posts