新手上路/超详细!!

开始绘制
上半部分的棋盘

下半部分的棋盘

画出棋盘边框

画出帅府和将营

绘制兵炮标记

运用函数来绘制

绘制棋子

运用函数来绘制

写“楚河汉界”

源代码
import turtle as t #引用turtle库
t.speed(1) #最快画笔速度
width=50 #设置正方形边长
x=-4width #原始位置为(0,0),为了使棋盘居 中,调整x和y的值
y=5
width
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(2
width*(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+7
width,y-2width) #画出上半部分棋盘的标记
draw(x,y-3
width)
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+7
width,y-7width)
draw(x,y-6
width)
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/10
width,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绘制中国象棋相关推荐

  1. 用turtle画中国象棋棋盘

    刚刚学习了<Python入门教程(一)--Python语言基础视频课程>(http://edu.51cto.com/course/12194.html) 中间有道作业就是用turtle画中 ...

  2. 中国象棋程序的设计与实现(十)--棋盘的定义和绘制 中国象棋程序的设计与实现(八)-如何构造一个棋子(車馬炮等) 中国象棋程序的设计与实现(九)–棋子点,棋子的小窝...

    本篇简要介绍棋盘类的定义.棋盘的关键属性.棋盘绘制算法的骨架. 棋盘的详细绘制算法等内容,我们将在接下来的几篇进行详细介绍. 棋盘类的定义 public abstract class ChessBoa ...

  3. Python GUI编程(Turtle)——绘制中国五星红旗

    Python turtle绘制 国旗-五星红旗 # 中华人民共和国国旗是五星红旗,中华人民共和国的象征和标志.中华人民共和国国旗的设计者是曾联松, # 旗面为红色,长方形,其长与高为三与二之比,旗面左 ...

  4. python turtle画中国象棋_python使用turtle绘制国际象棋棋盘

    本文实例为大家分享了python使用turtle画国际象棋棋盘的具体代码,供大家参考,具体内容如下 使用的方法是每一个小格每一个小格的画 import turtle for i in range(8) ...

  5. canvas绘制中国象棋棋盘

    棋盘 board.html <!doctype html> <html><head><meta charset="gb2312"/> ...

  6. JAVA中用程序绘制国际象棋与中国象棋棋盘

    JAVA API 中的绘制图形类的paint()方法,我们可以轻松绘制中国象棋与国际象棋的棋盘.详见代码: 一.中国象棋棋盘代码 import java.awt.Font; import java.a ...

  7. 中国象棋棋盘java_java绘制国际象棋与中国象棋棋盘

    JAVA API 中的绘制图形类的paint()方法,我们可以轻松绘制中国象棋与国际象棋的棋盘.详见代码: 一.中国象棋棋盘代码 import java.awt.Font; import java.a ...

  8. 程序员大佬教你如何用python制作中国象棋!一看就会

    中国象棋想必大家都玩过,突发奇想,想着怎么用python把中国国粹的中国象棋做出来呢?????? 首先老样子看看用python做出来的效果: 国粹--中国象棋 第一步:导入资源包 第二步:初始化 第三 ...

  9. 中国象棋棋子及棋盘的绘制

    一.题目简介 本课程设计主要是使用Swing这个Java自带的图形开发工具实现中国象棋棋子及棋盘的绘制,并根据相应的象棋规则,可以设计棋谱,完成棋谱的保存和对已保存的棋谱的演示,方便现在爱棋人士对残局 ...

最新文章

  1. vPower系列1: vMotion-没有vMotion,虚拟化只是玩具
  2. CodeChefSeries Sum (伯努利数+生成函数+FFT)
  3. mac安装opencv
  4. seaborn绘图后得到分布参数
  5. Gitlab 新建用户和修改密码
  6. 百兆以太网口通信速率_以太网 数据包速率计算方法
  7. 设计灵感|总有一款对话界面符合你的应用风格!
  8. Python3爬取豆瓣图书Top250并写入txt文件当中
  9. python从零开始学习网站-7天从零开始学Python
  10. 基于thinkphp的出租屋管理系统
  11. 偏最小二乘法PLS和PLS回归的介绍及其实现方法
  12. 【FPGA】:ip核----ram based shift register
  13. 重温Spring笔记3 - 依赖注入
  14. 达梦数据库备份方法总结学习
  15. 【翻译】Chrome Developer Tools: Element 样式
  16. 编译原理实验 -- 文法分析
  17. oracle 创建 dplink,Oracle创建dblink
  18. BRD、MRD、PRD与FSD
  19. CornerNet 论文阅读笔记
  20. 1个端口实现宿舍上4个bras,破除东大无语的宿舍端口不全开的限制!【东南大学】

热门文章

  1. 2019/3/24训练日记 谈谈数学---ACM中数学方面的应用(未完ing)
  2. java io 输入流
  3. 新手小白学3D建模,这些主流软件特征你怎么能比别人晚知道!
  4. java 多重继承_Java的继承与“多重继承”
  5. 饼图加引导线_PPT里的饼图,如何显示引导线?
  6. 文本聚类分析算法_Kmeans 算法实现二维数据聚类
  7. Anderson《空气动力学基础》5th读书笔记 第2记——流体静力学初步
  8. 串口通信中DB9和DB25的接法
  9. PCIE接口详解及应用模式
  10. 通过url地址批量打包zip下载文件