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

  

效果圖如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM