python3 turtle 畫國際象棋棋盤
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
import turtle
n = 60 # 每行間隔
x = -300 # x初始值
y = -300 # x初始值
turtle.speed(11)
turtle.pensize(2)
# 先畫8*8的正方形,並按要求塗黑
for i in range(8):
for j in range(1, 9):
turtle.penup()
turtle.goto(x + i * n, y + j * n )
turtle.pendown()
if (i + j) % 2 == 1: #不塗黑
for index in range(4):
turtle.forward(n)
turtle.left(90)
elif (i + j) % 2 == 0: #塗黑
turtle.begin_fill()
turtle.fillcolor('black')
for index in range(4):
turtle.forward(n)
turtle.left(90)
turtle.end_fill()
turtle.penup()
# 再畫外面兩個正方形
x1 = x - n * 0.12
y1 = y - n * 0.12 + n
turtle.goto(x1, y1)
turtle.pendown()
turtle.pensize(4)
for index in range(4):
turtle.forward(n * 8 + 2 * n * 0.12)
turtle.left(90)
turtle.penup()
# -----------------------------------------------
x2 = x - n * 0.3
y2 = y - n * 0.3 + n
turtle.goto(x2, y2)
turtle.pendown()
turtle.pensize(10)
for index in range(4):
turtle.forward(n * 8 + 2 * n * 0.3)
turtle.left(90)
turtle.hideturtle()
turtle.done()
稍作修改后,代碼如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
import turtle
n = 60 # 每行間隔,小格子邊長
x = -300 # x初始值
y = -300 # x初始值
def main():
turtle.speed(11)
turtle.pensize(2)
turtle.penup()
# 先畫8*8的正方形,並按要求塗黑
for i in range(8):
for j in range(8):
turtle.goto(x + i * n, y + j * n)
if (i + j) % 2 == 0: # 白格子
draw_square(n, "white")
elif (i + j) % 2 == 1: # 黑格子
draw_square(n, "black")
# 再畫外面兩個正方形
x1 = x - n * 0.12
y1 = y - n * 0.12
n1 = n * 8 + 2 * n * 0.12
turtle.goto(x1, y1)
turtle.pensize(4)
draw_square_2(n1)
# -----------------------------------------------
x2 = x - n * 0.3
y2 = y - n * 0.3
n2 = n * 8 + 2 * n * 0.3
turtle.goto(x2, y2)
turtle.pensize(10)
draw_square_2(n2)
turtle.hideturtle()
turtle.done()
def draw_square(length:float, fill_color:str):
"""
畫正方形並填充
:param length: 邊長
:param fill_color: 填充顏色
:return: 無
"""
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor(fill_color)
for index in range(4):
turtle.forward(length)
turtle.left(90)
turtle.end_fill()
turtle.penup()
def draw_square_2(length:float):
"""
畫正方形,不填充
:param length: 邊長
:return: 無
"""
turtle.pendown()
for index in range(4):
turtle.forward(length)
turtle.left(90)
turtle.penup()
if __name__ == '__main__':
main()
效果圖如下:

