python3 turtle 画国际象棋棋盘

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()

  

效果图如下:

原文地址:https://www.cnblogs.com/hiuhungwan/p/9231685.html