[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

运行中的效果如下图所示

最终的效果如下图所示

参考资料

相关推荐
鹿鹿学长1 小时前
微软把语音转写打到 0.1 美元/小时:5 个月降价 72%,AI 音频进入地板价时代
python·自动化
weixin_440730501 小时前
使用pytest中方法控制执行步骤(test_begin.py、test_end.py,@pytest.mark.run(order=1))
开发语言·python·pytest
小柯南敲键盘1 小时前
跨境电商批量图片翻译与视频字幕翻译,就用跨马AI工具
大数据·人工智能·python·音视频
Jgch221 小时前
出海Facebook广告账户怎么选?
游戏·facebook
心易行者2 小时前
Python自动化测试7步落地法:用python在线运行省掉90%环境配置时间
java·开发语言·人工智能·python·log4j·ai编程
Boop_wu2 小时前
[LangGraph] 案例 2 : 支持搜索的智能代理系统
服务器·windows·python·langchain
2601_962297252 小时前
Python、Pytest、Allure、Selenium和Jenkins实现自动化测试集成实例
python·selenium·jenkins·pytest·allure
今天AI了吗2 小时前
Codex 配置自定义 AI API 完整指南:从零到一接入你的专属模型
java·人工智能·python·数据分析·embedding
阿童木写作3 小时前
跨境电商批量图片翻译与视频字幕翻译工具推荐
python·音视频
leihefeng3 小时前
手写数字识别:KNN vs 逻辑回归实战
python·算法·机器学习·逻辑回归·scikit-learn