python3 turtle 画国际象棋棋盘

Posted 中华酷联

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

  

效果图如下:

以上是关于python3 turtle 画国际象棋棋盘的主要内容,如果未能解决你的问题,请参考以下文章

用turtle画中国象棋棋盘

如何用python turtle画一个中国象棋的棋盘?

Python之turtle画同心圆和棋盘

python3的turtle画模仿3d星空,运动的恒星小宇宙

Python:PIL图像处理库绘制国际象棋棋盘

用python代码编写象棋界面,棋盘覆盖问题