案例介绍

今天我们来用 turtle 画一个国际象棋棋盘,大小为 8x8。

​国际象棋棋盘

turtle 绘图(海归绘图)很适合用来引导孩子学习编程,请想象绘图区有一只机器海龟,起始位置在 x-y 平面的(0, 0)点,先执行 import turtle,再执行 turtle.forward(15),它将朝所面对的 x 轴 正方向前进 15 像素,随着它的移动画出一条线段。再执行 turtle.right(25),它将原地右转 25 度... 通过对这些命令的组合使用,我们可以轻松绘制出精美的形状和图案。——《turtle——海归绘图》

准备工作

我们需要使用 案例介绍 中提到的 turtle 基本使用方法,来一点一点绘制出这个棋盘,先绘制线条,然后再将对应的黑色块填充即可。

不需要安装额外的库,turtle 库是 Python 3 自带的库,只需要引用即可。

细节设计

  1. 先绘制棋盘线段。用两个 for 循环即可实现。
  2. 然后填充棋盘中的黑色块。使用双重循环实现,内层循环(2个 for 循环)以两行为一组,填充里面的黑色方块,外层循环控制哪一组(一共4组)。

代码汇总

 import turtleimport tkinter as tk​def draw_table():turtle.speed(20) # 绘图速度turtle.pensize(1) # 绘图笔画粗细turtle.pencolor("black") # 画笔颜色# 间隔大小interval = 30 # 棋盘格子大小# 棋盘长度length = interval * (8 / 2)# 绘制棋盘 先绘制横线再绘制纵线turtle.penup()turtle.goto(-length, length)for i in range(0, 9):turtle.pendown()turtle.goto(length, length - interval * i)turtle.penup()turtle.goto(-length, length - interval * (i + 1))turtle.penup()turtle.goto(-length, -length)for i in range(0, 9):turtle.pendown()turtle.goto(-length + interval * i, length)turtle.penup()turtle.goto(-length + interval * (i + 1), -length)​# 填充 内层循环实现一次性绘制两行,而外层循环控制四次循环turtle.penup()turtle.goto(-length, length)turtle.fillcolor("black")for j in range(0, -8, -2):for i in range(1, 8, 2):turtle.goto(-length + interval * i, length + interval * j)turtle.pendown()turtle.begin_fill()turtle.goto(-length + interval * (i + 1), length + interval * j)turtle.goto(-length + interval * (i + 1),length + interval * j - interval)turtle.goto(-length + interval * i,length + interval * j - interval)turtle.goto(-length + interval * i, length + interval * j)turtle.end_fill()turtle.penup()​for i in range(0, 8, 2):turtle.goto(-length + interval * i,length + interval * j - interval)turtle.pendown()turtle.begin_fill()turtle.goto(-length + interval * (i + 1),length + interval * j - interval)turtle.goto(-length + interval * (i + 1),length + interval * j - interval * 2)turtle.goto(-length + interval * i,length + interval * j - interval * 2)turtle.goto(-length + interval * i,length + interval * j - interval)turtle.end_fill()turtle.penup()​turtle.mainloop()​draw_table()

做一个 GIF 动画来详细展示绘制过程。

运行结果

​绘制棋盘边界

​填充颜色块

​最终结果

后记

以上就是我们使用 turtle 练手的小项目了,关于 turtle 的其它操作可以参考 参考资料

参考资料

  • turtle 库官方文档:https://docs.python.org/zh-cn/3.8/library/turtle.html#introduction

棋盘代码_【案例】 绘制国际象棋棋盘?(turtle 登场)相关推荐

  1. python画国际象棋_python图形工具turtle绘制国际象棋棋盘

    本文实例为大家分享了python图形工具turtle绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 #编写程序绘制一个国际象棋的棋盘 import turtle turtle.speed(30) ...

  2. python绘制8×8棋盘_python图形工具turtle绘制国际象棋棋盘

    本文实例为大家分享了python图形工具turtle绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 #编写程序绘制一个国际象棋的棋盘 import turtle turtle.speed(30) ...

  3. python国际象棋棋盘图片_python图形工具turtle绘制国际象棋棋盘

    本文实例为大家分享了python图形工具turtle绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 #编写程序绘制一个国际象棋的棋盘 import turtle turtle.speed(30) ...

  4. Python 利用Turtle模块绘制国际象棋棋盘

    使用Turtle模块绘制国际象棋棋盘 使用语言:Python 3.7.3 思路: 国际象棋是8×8的一个个小正方形,或者说是9横9纵的线组成.作画的时候,先做9横9纵的线,再填上灰色的小正方形,即可完 ...

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

    网页上搜索 "python绘制国际象棋棋盘",索引结果均为调用 turtle 库绘制棋盘结果:为了填充使用 python PIL 图像处理库绘制国际象棋棋盘的空白,今日分享此文. ...

  6. java国际象棋棋牌_java使用swing绘制国际象棋棋盘

    本文实例为大家分享了java使用swing绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 1.完整代码 import java.awt.Color; import java.awt.Point; ...

  7. 国际象棋绘制java_java使用swing绘制国际象棋棋盘

    本文实例为大家分享了java使用swing绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 1.完整代码 import java.awt.color; import java.awt.point; ...

  8. python绘制国际象棋棋盘

    国际象棋棋盘是一种具有传统文化内涵的棋类游戏,它由八行八列的格子组成,每行每列的格子上都有不同的棋子.棋盘的每一行和每一列都是由两种颜色的格子构成,一般是黑色和白色,形成了一个相互交错的格子棋盘. 用 ...

  9. 【案例】绘制国际象棋棋盘?(turtle 登场)

    文章目录 案例介绍 准备工作 细节设计 代码汇总 运行结果 后记 参考资料 案例介绍 今天我们来用 turtle 画一个国际象棋棋盘,大小为 8x8. 国际象棋棋盘 turtle 绘图(海归绘图)很适 ...

最新文章

  1. 为什么说BCH是最安全的数字货币之一?
  2. 查看java内存_怎么查看java虚拟机存储空间使用情况
  3. IOS中UITableview中封装九宫格
  4. activex控件 新对象 ocx 初始化_Office已经支持64位的树控件Treeview了
  5. Maven Scope取值的含义
  6. Linux Bash Shell j简单入门
  7. centos7 安装pip
  8. linux如何卸载干净mysql
  9. Linux指令篇:文件系统--fdisk(转)
  10. PS4在Jetson nano下的配对使用,并用ROS接口来控制
  11. 视频教程-小学生c++趣味编程入门视频教程 少儿C十十信息学奥赛竞赛网课-C/C++
  12. mysql如何创建视图
  13. 【离散数学】一阶/谓词逻辑思维导图
  14. 颜色不透明度 对应表
  15. 鼠标垫测试软件,百款鼠标垫测试(项目)
  16. 声音检索引擎- midomi.com
  17. 以数据智能引领产业数字化,滴普科技宣布完成5000万美元A+轮融资
  18. R语言数据类型基础1 数值型、逻辑型与文本型
  19. 邮件中的:请看附件;请知悉,英语怎么说。要比较正式的用语
  20. 文章管理系统 -- Express学习

热门文章

  1. PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建
  2. 【数据结构与算法】之深入解析“下一个更大元素I”的求解思路与算法示例
  3. 【数据结构与算法】之深入解析运用链表结构计算“两数相加”的算法实现
  4. 111. Minimum Depth of Binary Tree 二叉树的最小深度
  5. Bubble Sort Aizu - ALDS1_2_A
  6. 2019第十届蓝桥杯C/C++ B组省赛 —— 第三题:数列求值
  7. 征战蓝桥 —— 2013年第四届 —— C/C++A组第4题——颠倒的价牌
  8. 大数据WEB阶段(九)Myeclipse中配置Tomcat并发布项目
  9. Exp1 PC平台逆向破解 20164309 欧阳彧骁
  10. 【STM32】FreeRTOS创建和删除任务示例(动态方法)