[Python] 用 turtle 来绘制国际象棋棋盘(不含棋子)

背景

turtle --- Turtle graphics 中提供了关于 turtle\text{turtle} turtle 模块的介绍。我想用 turtle\text{turtle} turtle 来生成些简单的图案,以巩固学习的效果。最近我经常下国际象棋,于是想到可以用 turtle\text{turtle} turtle 来绘制国际象棋的棋盘。

正文

基本的分析

国际象棋的棋盘长这样 ⬇️

为了降低难度,我们不关心以下内容

  • 棋子
  • 棋盘边上用于表示坐标的数字和字母

那么我们的目标就变为,绘制 8×88\times 8 8×8 个黑白相间的正方形格子(左上角的格子是白色的)。考虑到只有 8×88\times 8 8×8 个格子,我们可以遍历 88 8 行 88 8 列,绘制对应的格子(需要计算每个格子的颜色)。

代码

有了上述思路后,结合 turtle --- Turtle graphics 中的文档,不难写出对应的 Python\text{Python} Python 代码。

我写的版本如下(trae 提供了一些帮助)⬇️

python 复制代码
import turtle

cell_size = 50
init_x = -200
init_y = 200
row_cnt = 8
col_cnt = 8

def fill_color(r, c):
    if (r + c) % 2 == 0:
        return "white"
    return "black"

turtle.speed('fastest')
for row in range(row_cnt):
    for col in range(col_cnt):
        x = init_x + col * cell_size
        y = init_y - row * cell_size
        turtle.teleport(x, y)
        turtle.setheading(0)

        turtle.color("black", fill_color(row, col))
        with turtle.fill():
            for i in range(4):
                turtle.forward(cell_size)
                turtle.right(90)

turtle.hideturtle()

turtle.mainloop()

请将以上代码保存为 draw_chessboard.py。执行以下命令可以运行 draw_chessboard.py

bash 复制代码
python3 draw_chessboard.py

运行中的效果如下图所示

最终的效果如下图所示

参考资料

相关推荐
2603_965148111 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
jufeng13073 小时前
【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 8 篇】
python·ai agent·配置系统
circuitsosk3 小时前
跨境电商智能化实战:AI如何赋能客服自动回复、广告智能投放与供应链预测
大数据·人工智能·python·langchain·智能客服
2601_956319884 小时前
2026年零基础学量化:从看懂示例到写清条件和动作
人工智能·python
过期的秋刀鱼!4 小时前
LangChain-D1-模型的工作流程
人工智能·python·langchain
萤火工厂目视化设计5 小时前
智能制造与企业文化目视化浪潮下:中小工厂的机遇与挑战
python·制造
DeepVisionary6 小时前
从GPT-5.6 Sol的Ultrafast模式看推理速度竞赛:750 token/秒背后,Cerebras的晶圆级生意
python·自动化
檀越剑指大厂6 小时前
哪个远程控制软件低延迟适合玩游戏?2026年8月六款远程工具按游戏类型深度实测
游戏·玩游戏
leisoo80976 小时前
财报数据怎么排雷本地化Python构建财务异常预警系统
人工智能·python·算法
小柯南敲键盘7 小时前
跨马翻译:跨境电商批量图片翻译与视频字幕一站式工具
人工智能·python·音视频