用python画中国象棋棋盘

  • 1. 导入Turtle函数库
  • 2. 定义画布大小及顶点位置
  • 3. 定义画笔
  • 4.绘制横线
  • 5. 绘制竖线
  • 6. 绘制斜线
  • 7. 需要调用的函数
  • 8. 修饰炮和兵所在点
  • 9. 绘制一个长方形外围线,设置笔的粗细
  • 10. 效果图

1. 导入Turtle函数库

Turtle库是Python绘制图像的函数库,根据函数指令控制点在平面坐标系中移动,实现图形绘制。

import turtle

2. 定义画布大小及顶点位置

turtle.setup(width=800, height=880, startx=600, starty=0)
turtle.screensize(300, 300, "#D6C49E")

3. 定义画笔

t=turtle.Pen()
t.speed(5)      #移动速度
t.pencolor()  #颜色
t.pensize(1.5)  #宽度

4.绘制横线

t.penup()      #抬起
t.goto(-240,270)   #起始点
t.pendown()      #下笔
for i in range(1,6,1): t.forward(480)  #画480pxt.penup()    #抬起t.right(90)  #右转90度t.forward(60)  #移动60pxt.right(90)    #右转90度t.pendown()   #下笔t.forward(480)  #画480pxt.penup()   #抬起t.left(90)   #左转90度t.forward(60)  #移动60pxt.left(90)   #左转90度t.pendown()   #下笔

5. 绘制竖线

t.left(90)
t.penup()
t.forward(60)
t.pendown()
for i in range(1,5,1):t.forward(240)t.penup()t.forward(60)t.pendown()t.forward(240)t.right(90)t.forward(60)t.right(90)t.forward(240)t.penup()t.forward(60)t.pendown()t.forward(240)t.left(90)t.forward(60)t.left(90)
t.forward(540)
t.left(90)
t.forward(480)
t.left(90)
t.forward(540)

6. 绘制斜线

t.left(90)
t.forward(180)
t.left(45)
t.forward(120*1.414)
t.left(45)
t.forward(-120)
t.left(45)
t.forward(120*1.414)
t.penup()
t.goto(-60,270)
t.pendown()
t.right(180)
t.forward(120*1.414)
t.right(45)
t.forward(-120)
t.right(45)
t.forward(120*1.414)

7. 需要调用的函数

def angle(x,y):t.penup()t.goto(x+5,y+5)t.pendown()t.setheading(0)  #设置当前角度朝向t.forward(5)t.goto(x+5,y+5)t.left(90)t.forward(5)t.penup()t.goto(x+5,y-5)t.pendown()t.setheading(0)t.forward(5)t.goto(x+5,y-5)t.left(90)t.forward(-5)t.penup()t.goto(x-5,y+5)t.pendown()t.setheading(0)t.forward(-5)t.goto(x-5,y+5)t.left(90)t.forward(5)t.penup()t.goto(x-5,y-5)t.pendown()t.setheading(0)t.forward(-5)t.goto(x-5,y-5)t.left(90)t.forward(-5)def a(x,y):t.penup()t.goto(x-5,y+5)t.pendown()t.setheading(0)t.forward(-5)t.goto(x-5,y+5)t.left(90)t.forward(5)t.penup()t.goto(x-5,y-5)t.pendown()t.setheading(0)t.forward(-5)t.goto(x-5,y-5)t.left(90)t.forward(-5)def v(x,y):t.penup()t.goto(x+5,y+5)t.pendown()t.setheading(0)t.forward(5)t.goto(x+5,y+5)t.left(90)t.forward(5)t.penup()t.goto(x+5,y-5)t.pendown()t.setheading(0)t.forward(5)t.goto(x+5,y-5)t.left(90)t.forward(-5)t.penup()

8. 修饰炮和兵所在点

angle(180,150)
angle(-180,150)
angle(180,-150)
angle(-180,-150)
angle(-120,90)
angle(0,90)
angle(120,90)
angle(-120,-90)
angle(0,-90)
angle(120,-90)a(240,90)
a(240,-90)
v(-240,-90)
v(-240,90)

9. 绘制一个长方形外围线,设置笔的粗细

t.penup()
t.goto(-250,-280)
t.pendown()
t.pensize(8)
t.forward(560)
t.right(90)
t.forward(500)
t.right(90)
t.forward(560)
t.right(90)
t.forward(500)
t.right(90)turtle.done()

10. 效果图

用python画中国象棋棋盘相关推荐

  1. 用turtle画中国象棋棋盘

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

  2. 如何用Python画一个中国象棋棋盘?

    今天试着画了一个中国象棋棋盘! #绘制象棋盘 import turtle      t=turtle.Pen() t.speed(100) def angle(x,y):     t.penup() ...

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

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

  4. matlab识别中国象棋棋盘,一种基于图像处理的中国象棋识别系统及方法与流程

    本发明涉及计算机图像识别技术,具体涉及一种基于图像处理的中国象棋识别系统及方法. 背景技术: 数字图像处理技术在机器感知领域应用十分广泛,主要目标是通过一些图像处理技术从图像中提取信息,该信息类似于人 ...

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

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

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

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

  7. 马踏中国象棋棋盘的贪心算法

    今天上午在网上看到了一篇介绍马踏棋盘的贪心算法的文章,就想照着把它实现.可是写到一半,发现原文好像是国际象棋的棋盘.对国际象棋的规则一窍不通,所以就硬着头皮按中国象棋的规则来写.还真的写出来了. [问 ...

  8. java中国象棋棋盘放置棋子,JAVA简易文字版中国象棋

    大二时制作的JAVA简易文字版中国象棋,现在放出,希望大家喜欢! // Java core packages import java.awt.*; import java.awt.event.*; / ...

  9. 如何用python画出中国地图-用Python画中国地图(二)

    在上一篇文章<用Python画一个中国地图>中,我们简单描述了一下如何用Python快速画出一个中国地图的轮廓,似乎没有什么实用价值,这一次我们用实际数据填充它,使它看上去更有意义. 上色 ...

  10. 用Python画中国地图(二)

    在上一篇文章<用Python画一个中国地图>中,我们简单描述了一下如何用Python快速画出一个中国地图的轮廓,似乎没有什么实用价值,这一次我们用实际数据填充它,使它看上去更有意义. 上色 ...

最新文章

  1. themleaf返回可以带目录结构
  2. C#多线程---Task实现异步
  3. 认证授权方案之授权揭秘 (上篇)
  4. ubuntu 安装sql_在Ubuntu上进行SQL Server安装和故障排除
  5. Python中Numpy数组的归一化处理
  6. 数据结构实验之查找一:二叉排序树 (SDUT 3373)
  7. 7-2 修理牧场 (25 分)
  8. Java 多版本JDK 环境配置 javac和java 版本不一致
  9. java.lang.ClassNotFoundException: net.sf.json.JSONObject
  10. MFC 多字节和UNICODE的相互转换(解决中文utf8-ASCNII乱码问题)
  11. #IP实验室,第二周复盘
  12. Unity内截屏实现
  13. php 如何添加备案号,wordpress如何添加备案信息
  14. php打印机,用PHP打印到打印机
  15. C语言基础之3:数据与C
  16. Sentiment Polarity Detection for Software Development
  17. Windows 10驱动签名_win 10驱动数字签名_驱动签名注意事项
  18. 【UnblockNeteaseMusic】代理网易云后隐藏NODE代理窗口方法
  19. 孝经白话:广要道章第十二
  20. android ota机制,Android OTA简介

热门文章

  1. 边境的悍匪—机器学习实战:第十一章 训练深度神经网络
  2. 安卓和ios针对小程序兼容以及小程序技术实现上本身遇到的一些问题
  3. java工厂模式:简单工厂、工厂方法、抽象工厂(通俗易懂)
  4. Netstat -tln 命令是Linux查看端口使用情况
  5. python爬虫爬取链家二手房信息
  6. 高级计量经济学及stata应用 学习笔记③ 长面板
  7. 关于自己学C的点滴记录
  8. 现代JS名词概念系列——函数的纯洁性【龟速翻译】
  9. 怎么删除TEMP文件夹
  10. 关于 NM_CONTROLLED和Network Manager