棋盘代码_【案例】 绘制国际象棋棋盘?(turtle 登场)
案例介绍
今天我们来用 turtle 画一个国际象棋棋盘,大小为 8x8。
turtle 绘图(海归绘图)很适合用来引导孩子学习编程,请想象绘图区有一只机器海龟,起始位置在 x-y 平面的(0, 0)点,先执行 import turtle,再执行 turtle.forward(15),它将朝所面对的 x 轴 正方向前进 15 像素,随着它的移动画出一条线段。再执行 turtle.right(25),它将原地右转 25 度... 通过对这些命令的组合使用,我们可以轻松绘制出精美的形状和图案。——《turtle——海归绘图》
准备工作
我们需要使用 案例介绍 中提到的 turtle 基本使用方法,来一点一点绘制出这个棋盘,先绘制线条,然后再将对应的黑色块填充即可。
不需要安装额外的库,turtle 库是 Python 3 自带的库,只需要引用即可。
细节设计
- 先绘制棋盘线段。用两个 for 循环即可实现。
- 然后填充棋盘中的黑色块。使用双重循环实现,内层循环(2个 for 循环)以两行为一组,填充里面的黑色方块,外层循环控制哪一组(一共4组)。
代码汇总
import turtleimport tkinter as tkdef 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 登场)相关推荐
- python画国际象棋_python图形工具turtle绘制国际象棋棋盘
本文实例为大家分享了python图形工具turtle绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 #编写程序绘制一个国际象棋的棋盘 import turtle turtle.speed(30) ...
- python绘制8×8棋盘_python图形工具turtle绘制国际象棋棋盘
本文实例为大家分享了python图形工具turtle绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 #编写程序绘制一个国际象棋的棋盘 import turtle turtle.speed(30) ...
- python国际象棋棋盘图片_python图形工具turtle绘制国际象棋棋盘
本文实例为大家分享了python图形工具turtle绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 #编写程序绘制一个国际象棋的棋盘 import turtle turtle.speed(30) ...
- Python 利用Turtle模块绘制国际象棋棋盘
使用Turtle模块绘制国际象棋棋盘 使用语言:Python 3.7.3 思路: 国际象棋是8×8的一个个小正方形,或者说是9横9纵的线组成.作画的时候,先做9横9纵的线,再填上灰色的小正方形,即可完 ...
- Python:PIL图像处理库绘制国际象棋棋盘
网页上搜索 "python绘制国际象棋棋盘",索引结果均为调用 turtle 库绘制棋盘结果:为了填充使用 python PIL 图像处理库绘制国际象棋棋盘的空白,今日分享此文. ...
- java国际象棋棋牌_java使用swing绘制国际象棋棋盘
本文实例为大家分享了java使用swing绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 1.完整代码 import java.awt.Color; import java.awt.Point; ...
- 国际象棋绘制java_java使用swing绘制国际象棋棋盘
本文实例为大家分享了java使用swing绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 1.完整代码 import java.awt.color; import java.awt.point; ...
- python绘制国际象棋棋盘
国际象棋棋盘是一种具有传统文化内涵的棋类游戏,它由八行八列的格子组成,每行每列的格子上都有不同的棋子.棋盘的每一行和每一列都是由两种颜色的格子构成,一般是黑色和白色,形成了一个相互交错的格子棋盘. 用 ...
- 【案例】绘制国际象棋棋盘?(turtle 登场)
文章目录 案例介绍 准备工作 细节设计 代码汇总 运行结果 后记 参考资料 案例介绍 今天我们来用 turtle 画一个国际象棋棋盘,大小为 8x8. 国际象棋棋盘 turtle 绘图(海归绘图)很适 ...
最新文章
- 为什么说BCH是最安全的数字货币之一?
- 查看java内存_怎么查看java虚拟机存储空间使用情况
- IOS中UITableview中封装九宫格
- activex控件 新对象 ocx 初始化_Office已经支持64位的树控件Treeview了
- Maven Scope取值的含义
- Linux Bash Shell j简单入门
- centos7 安装pip
- linux如何卸载干净mysql
- Linux指令篇:文件系统--fdisk(转)
- PS4在Jetson nano下的配对使用,并用ROS接口来控制
- 视频教程-小学生c++趣味编程入门视频教程 少儿C十十信息学奥赛竞赛网课-C/C++
- mysql如何创建视图
- 【离散数学】一阶/谓词逻辑思维导图
- 颜色不透明度 对应表
- 鼠标垫测试软件,百款鼠标垫测试(项目)
- 声音检索引擎- midomi.com
- 以数据智能引领产业数字化,滴普科技宣布完成5000万美元A+轮融资
- R语言数据类型基础1 数值型、逻辑型与文本型
- 邮件中的:请看附件;请知悉,英语怎么说。要比较正式的用语
- 文章管理系统 -- Express学习
热门文章
- PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建
- 【数据结构与算法】之深入解析“下一个更大元素I”的求解思路与算法示例
- 【数据结构与算法】之深入解析运用链表结构计算“两数相加”的算法实现
- 111. Minimum Depth of Binary Tree 二叉树的最小深度
- Bubble Sort Aizu - ALDS1_2_A
- 2019第十届蓝桥杯C/C++ B组省赛 —— 第三题:数列求值
- 征战蓝桥 —— 2013年第四届 —— C/C++A组第4题——颠倒的价牌
- 大数据WEB阶段(九)Myeclipse中配置Tomcat并发布项目
- Exp1 PC平台逆向破解 20164309 欧阳彧骁
- 【STM32】FreeRTOS创建和删除任务示例(动态方法)