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()
效果圖如下: