用turtle绘制中国象棋
新手上路/超详细!!
开始绘制
上半部分的棋盘
下半部分的棋盘
画出棋盘边框
画出帅府和将营
绘制兵炮标记
运用函数来绘制
绘制棋子
运用函数来绘制
写“楚河汉界”
源代码
import turtle as t #引用turtle库
t.speed(1) #最快画笔速度
width=50 #设置正方形边长
x=-4width #原始位置为(0,0),为了使棋盘居 中,调整x和y的值
y=5width
a=0 #记录行数
t.penup() #提起画笔
t.goto(x,y) #移动位置
t.pendown() #放下画笔
for z in range(4): #画出4行正方形
for j in range(8): #画出一行8个正方形
for i in range(2): #画出1个正方形
t.forward((1+j)width)
t.left(90)
t.backward(width) #往当前方向的反方向移动
t.left(90)
t.penup()
t.goto(x,y-width(z+1)) #移动到下一行
t.pendown()
a=a+1 #记录已经画了几行
a=a+1 #加上“楚河汉界”的那一行
t.penup()
t.goto(x,y-width*(a)) #移动到下半区域画棋盘
t.pendown()
for z in range(4): #与上文同理
for j in range(8):
for i in range(2):
t.forward((1+j)width)
t.left(90)
t.backward(width)
t.left(90)
t.penup()
t.goto(x,y-width(z+a+1))
t.pendown()
t.penup()
t.goto(x-width2/5,y+width2/5) #移动到边框的起点
t.pendown()
for i in range(2): #画出边框
t.forward(8width+4/5width)
t.left(90)
t.backward(9width+4/5width)
t.left(90)
t.penup()
t.goto(x+3width,y) #绘制帅府和将营,即两条斜线。移动到起点
t.right(45) #斜线的夹角
t.pendown()
t.forward(2width*(20.5)) #斜线的长度,“xn”的意义为x的n次幂
t.penup() #同理
t.goto(x+3width,y-width7)
t.pendown()
t.forward(2width(2**0.5))
t.penup() #同理
t.goto(x+3width,y-2width)
t.left(90)
t.pendown()
t.forward(2width(2**0.5))
t.penup() #同理
t.goto(x+3width,y-width9)
t.pendown()
t.forward(2width(2**0.5))
t.right(45) #将画笔转回水平方向
def draw(x,y): #绘制兵炮标记的函数
t.penup()
t.goto(x-9,y+3) #令画笔回到初始设定的位置
for i in range(4):
t.pendown()
t.forward(6)
t.left(90)
t.forward(6)
t.right(90)
t.penup()
t.forward(6)
t.pendown()
t.right(90)
t.penup()
draw(x+width,y-2width) #传入要画标记的位置坐标
draw(x+7width,y-2width) #画出上半部分棋盘的标记
draw(x,y-3width)
draw(x+2width,y-3width)
draw(x+4width,y-3width)
draw(x+6width,y-3width)
draw(x+8width,y-3width)
draw(x+width,y-7width) #画出下半部分棋盘的标记
draw(x+7width,y-7width)
draw(x,y-6width)
draw(x+2width,y-6width)
draw(x+4width,y-6width)
draw(x+6width,y-6width)
draw(x+8width,y-6width)
def drawCircle(x,y,w,radius): #绘制棋子的函数,传入棋子的坐标,文字,半径
t.penup()
t.goto(x,y-2/5width)
t.pendown()
t.pensize(3) #调整画笔大小
t.begin_fill() #准备开始填充
t.fillcolor(‘white’)
t.circle(radius)
t.penup()
t.goto(x-3/10width,y-3/10*width) #调整画笔位置,使文字居中
t.pendown()
t.write(w,font=(‘隶书’,27,‘normal’))
t.end_fill() #结束填充
drawCircle(-4width,5width,“车”,20) #传入数据,画出上半部分棋盘的棋子
drawCircle(-3width,5width,“马”,20)
drawCircle(-2width,5width,“象”,20)
drawCircle(-1width,5width,“士”,20)
drawCircle(0width,5width,“将”,20)
drawCircle(1width,5width,“士”,20)
drawCircle(2width,5width,“象”,20)
drawCircle(3width,5width,“马”,20)
drawCircle(4width,5width,“车”,20)
drawCircle(-4width,-4width,“车”,20) #传入数据,画出下半部分棋盘的棋子
drawCircle(-3width,-4width,“马”,20)
drawCircle(-2width,-4width,“象”,20)
drawCircle(-1width,-4width,“士”,20)
drawCircle(0width,-4width,“将”,20)
drawCircle(1width,-4width,“士”,20)
drawCircle(2width,-4width,“象”,20)
drawCircle(3width,-4width,“马”,20)
drawCircle(4width,-4width,“车”,20)
drawCircle(-4width,2width,“卒”,20) #传入数据,画出上半部分棋盘的棋子
drawCircle(-3width,3width,“炮”,20)
drawCircle(-2width,2width,“卒”,20)
drawCircle(0width,2width,“卒”,20)
drawCircle(2width,2width,“卒”,20)
drawCircle(3width,3width,“炮”,20)
drawCircle(4width,2width,“卒”,20)
drawCircle(-4width,-1width,“兵”,20) #传入数据,画出下半部分棋盘的棋子
drawCircle(-3width,-2width,“砲”,20)
drawCircle(-2width,-1width,“兵”,20)
drawCircle(0width,-1width,“兵”,20)
drawCircle(2width,-1width,“兵”,20)
drawCircle(3width,-2width,“砲”,20)
drawCircle(4width,-1width,“兵”,20)
t.penup()
t.goto(x+1.7width,y0*width) #移动到棋盘分界线处
t.pendown()
t.write(‘楚’,font=(‘隶书’,27,‘normal’))
t.penup()
t.goto(x+3width,y0*width)
t.pendown()
t.write(‘河’,font=(‘隶书’,27,‘normal’))
t.penup()
t.goto(x+4.3width,y0*width)
t.pendown()
t.write(‘汉’,font=(‘隶书’,27,‘normal’))
t.penup()
t.goto(x+5.6width,y0*width)
t.pendown()
t.write(‘界’,font=(‘隶书’,27,‘normal’))
t.done()
用turtle绘制中国象棋相关推荐
- 用turtle画中国象棋棋盘
刚刚学习了<Python入门教程(一)--Python语言基础视频课程>(http://edu.51cto.com/course/12194.html) 中间有道作业就是用turtle画中 ...
- 中国象棋程序的设计与实现(十)--棋盘的定义和绘制
中国象棋程序的设计与实现(八)-如何构造一个棋子(車馬炮等) 中国象棋程序的设计与实现(九)–棋子点,棋子的小窝...
本篇简要介绍棋盘类的定义.棋盘的关键属性.棋盘绘制算法的骨架. 棋盘的详细绘制算法等内容,我们将在接下来的几篇进行详细介绍. 棋盘类的定义 public abstract class ChessBoa ...
- Python GUI编程(Turtle)——绘制中国五星红旗
Python turtle绘制 国旗-五星红旗 # 中华人民共和国国旗是五星红旗,中华人民共和国的象征和标志.中华人民共和国国旗的设计者是曾联松, # 旗面为红色,长方形,其长与高为三与二之比,旗面左 ...
- python turtle画中国象棋_python使用turtle绘制国际象棋棋盘
本文实例为大家分享了python使用turtle画国际象棋棋盘的具体代码,供大家参考,具体内容如下 使用的方法是每一个小格每一个小格的画 import turtle for i in range(8) ...
- canvas绘制中国象棋棋盘
棋盘 board.html <!doctype html> <html><head><meta charset="gb2312"/> ...
- JAVA中用程序绘制国际象棋与中国象棋棋盘
JAVA API 中的绘制图形类的paint()方法,我们可以轻松绘制中国象棋与国际象棋的棋盘.详见代码: 一.中国象棋棋盘代码 import java.awt.Font; import java.a ...
- 中国象棋棋盘java_java绘制国际象棋与中国象棋棋盘
JAVA API 中的绘制图形类的paint()方法,我们可以轻松绘制中国象棋与国际象棋的棋盘.详见代码: 一.中国象棋棋盘代码 import java.awt.Font; import java.a ...
- 程序员大佬教你如何用python制作中国象棋!一看就会
中国象棋想必大家都玩过,突发奇想,想着怎么用python把中国国粹的中国象棋做出来呢?????? 首先老样子看看用python做出来的效果: 国粹--中国象棋 第一步:导入资源包 第二步:初始化 第三 ...
- 中国象棋棋子及棋盘的绘制
一.题目简介 本课程设计主要是使用Swing这个Java自带的图形开发工具实现中国象棋棋子及棋盘的绘制,并根据相应的象棋规则,可以设计棋谱,完成棋谱的保存和对已保存的棋谱的演示,方便现在爱棋人士对残局 ...
最新文章
- vPower系列1: vMotion-没有vMotion,虚拟化只是玩具
- CodeChefSeries Sum (伯努利数+生成函数+FFT)
- mac安装opencv
- seaborn绘图后得到分布参数
- Gitlab 新建用户和修改密码
- 百兆以太网口通信速率_以太网 数据包速率计算方法
- 设计灵感|总有一款对话界面符合你的应用风格!
- Python3爬取豆瓣图书Top250并写入txt文件当中
- python从零开始学习网站-7天从零开始学Python
- 基于thinkphp的出租屋管理系统
- 偏最小二乘法PLS和PLS回归的介绍及其实现方法
- 【FPGA】:ip核----ram based shift register
- 重温Spring笔记3 - 依赖注入
- 达梦数据库备份方法总结学习
- 【翻译】Chrome Developer Tools: Element 样式
- 编译原理实验 -- 文法分析
- oracle 创建 dplink,Oracle创建dblink
- BRD、MRD、PRD与FSD
- CornerNet 论文阅读笔记
- 1个端口实现宿舍上4个bras,破除东大无语的宿舍端口不全开的限制!【东南大学】