上一篇中,我们缕清了思路,知道了如何写,怎么做,从哪入手,这一篇,我们就正式开始敲代码了,编程使我快乐,对吧,emm~~~

还记得这张图吧:

编程完成

好了,向着目标,进发了。。。

程序中牵扯到的函数,头文件什么的,不懂的,怎么办?

学习,千万别忘了’网络’这东西,‘度娘’,‘博客’,各种各样的学习工具,总有一款适合你,废话少说,Let's go!

import pygame

import pygame.font

import sys

import traceback

from pygame.locals import *

pygame.font.init()

pygame.init()

#绘制棋盘

def Draw_a_chessboard(screen):

#填充背景色

screen.fill((233,204,138))

#画外框

outer_frame_color = (60,20,0)

pygame.draw.rect(screen,outer_frame_color,[80,80,830,740],5)

#行

inner_frame_color = (0,0,0)

for i in range(1,10):

pygame.draw.line(screen, inner_frame_color, (90, 90*i), (900, 90*i))

#列

for i in range(1,11):

pygame.draw.line(screen,inner_frame_color, (90*i, 90), (90*i, 810))

#‘将’

jiang_rote_color = (0,0,0)

pygame.draw.lines(screen, jiang_rote_color, True,[(90, 360),(270, 360),(270,540),(90,540)],3)

pygame.draw.lines(screen, jiang_rote_color, True,[(720, 360),(900, 360),(900,540),(720,540)],3)

#‘士’路线

shi_rote_color = (0,0,0)

pygame.draw.line(screen, shi_rote_color, (90, 360), (270, 540),3)

pygame.draw.line(screen, shi_rote_color, (90, 540), (270, 360),3)

pygame.draw.line(screen, shi_rote_color, (720, 360), (900, 540),3)

pygame.draw.line(screen, shi_rote_color, (720, 540), (900, 360),3)

#‘象’路线

xiang_rote_color = (0,0,0)

pygame.draw.lines(screen, xiang_rote_color, True,[(270, 450),(90, 270),(270,90),(450,270)])

pygame.draw.lines(screen, xiang_rote_color, True,[(270, 450),(90, 630),(270,810),(450,630)])

pygame.draw.lines(screen, xiang_rote_color, True,[(720, 450),(900, 270),(720,90),(540,270)])

pygame.draw.lines(screen, xiang_rote_color, True,[(720, 450),(900, 630),(720,810),(540,630)])

#‘兵’,用抗锯齿连续线段

bing_rote_color = (255,0,0)

for j in range(0,2):

for k in range(0,4):

pygame.draw.aalines(screen, bing_rote_color, False,[(330+270*j, 260+180*k),(350+270*j, 260+180*k),(350+270*j,240+180*k)],3)

pygame.draw.aalines(screen, bing_rote_color, False,[(390+270*j, 260+180*k),(370+270*j, 260+180*k),(370+270*j,240+180*k)],3)

pygame.draw.aalines(screen, bing_rote_color, False,[(330+270*j, 100+180*k),(350+270*j, 100+180*k),(350+270*j,120+180*k)],3)

pygame.draw.aalines(screen, bing_rote_color, False,[(390+270*j, 100+180*k),(370+270*j, 100+180*k),(370+270*j,120+180*k)],3)

#‘炮’

pao_rote_color = (255,0,0)

for m in range(0,2):

for n in range(0,2):

pygame.draw.aalines(screen, pao_rote_color, False,[(240+450*m, 170+540*n),(260+450*m, 170+540*n),(260+450*m,150+540*n)],3)

pygame.draw.aalines(screen, pao_rote_color, False,[(300+450*m, 170+540*n),(280+450*m, 170+540*n),(280+450*m,150+540*n)],3)

pygame.draw.aalines(screen, pao_rote_color, False,[(240+450*m, 190+540*n),(260+450*m, 190+540*n),(260+450*m,210+540*n)],3)

pygame.draw.aalines(screen, pao_rote_color, False,[(300+450*m, 190+540*n),(280+450*m, 190+540*n),(280+450*m,210+540*n)],3)

#绘制‘楚河汉界’

pygame.draw.rect(screen,[233,204,138],[451,91,89,719])

chuhehanjie = pygame.image.load("楚河汉界.png").convert_alpha()

screen.blit(chuhehanjie,(451,91))

#画‘悔棋’,‘重新开始’和‘退出’按钮

button_color = (163,80,21)

pygame.draw.rect(screen,button_color,[980,300,200,100],5)

pygame.draw.rect(screen,button_color,[980,500,200,100],5)

pygame.draw.rect(screen,button_color,[980,700,200,100],5)

s_font = pygame.font.Font('anjian_font.ttf',45)

text1 = s_font.render("悔 棋",True,button_color)

text2 = s_font.render("重新开始",True,button_color)

text3 = s_font.render("退出游戏",True,button_color)

screen.blit(text1,(1000,320))

screen.blit(text2,(980,520))

screen.blit(text3,(980,720))

def main():

#创建一个窗口

screen = pygame.display.set_mode([1200,900])

# 设置窗口标题

pygame.display.set_caption("中国象棋")

while True:

Draw_a_chessboard(screen)

pygame.display.flip()

clock = pygame.time.Clock()

#监听所有事件

for event in pygame.event.get():

#点击x则关闭窗口

if event.type ==pygame.QUIT:

pygame.quit()

sys.exit()

if __name__ == "__main__":

try:

main()

except SystemExit:

pass

except:

traceback.print_exc()

pygame.quit()

input()

不知道大家注意到中间的这几行代码了没?

#监听所有事件

for event in pygame.event.get():

#点击x则关闭窗口

if event.type ==pygame.QUIT:

pygame.quit()

sys.exit()

我开始没有注意到这个问题,点击运行之后,鼠标一直转圈状态,然后再点击就无响应了,怎么解决呢?我们不是有神通广大的博客吗,果不其然,我在博客上找到了答案,有博主也遇到了这个问题,解决方案就是这样,加了这几行代码,问题就迎刃而解啦!

1

这就是运行的结果啦,小可爱们,你们运行出来了吗?

还有一点,大家要注意一下哈,如果要借鉴我的代码,中间有个‘楚河汉界’,不知道大家注意到没,对咯,这个是我加的一张图片,而非编程所得,因为‘楚河汉界’的位置不好定,字体不好找,最重要的,有两个字是颠倒过来的,这就很尴尬,没办法,我只能加个图片咯,如果要成功应用这段代码,方法(1、把代码中应用‘楚河汉界’的这段代码删掉;2、在你编程的文件夹中加一个命名为’楚河汉界.png'的图片,图片大小‘89719)(尺寸有点怪?本来是90720,横竖各少一个像素,以免压住下面的框线)

到这我们的棋盘就画完了,是不是很有成就感呢?下一篇博客,我们就开始下一部分——绘制棋子

文章中有任何不懂的问题,欢迎大家骚扰,博主很愿意和大家共同进步哟,整理不易,喜欢的话就打赏一下吧~~~

python象棋编程_Python开发象棋小游戏(绘制棋盘)相关推荐

  1. python双手打字_Python打字练习小游戏源代码

    Python打字练习小游戏源代码 Python代码狂人 Python代码大全 Python打字练习小游戏源程序,随机产生一串字符,可对打字练习的正确率和时间进行统计,运行截图如下: from tkin ...

  2. python玩扫雷_python实现扫雷小游戏

    前面我们用python实现了贪吃蛇.坦克大战.飞船大战.五子棋等游戏 今天我们用python来实现一下扫雷游戏 本游戏代码量和源文件较多 可以从我的GitHub地址中获取 构建地雷区import ra ...

  3. python五子棋代码_python实现五子棋小游戏

    本文实例为大家分享了python实现五子棋小游戏的具体代码,供大家参考,具体内容如下 暑假学了十几天python,然后用pygame模块写了一个五子棋的小游戏,代码跟有缘人分享一下. import n ...

  4. 利用python制作拼图_python制作拼图小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理介绍 游戏简介: ...

  5. python文字游戏源代码_python 像素小鸟小游戏源码(flappybird)

    [实例简介] 像素小鸟这个简单的游戏于2014年在网络上爆红,游戏上线一段时间内appleStore上的下载量一度达到5000万次,风靡一时 [实例截图] [核心代码] from Class impo ...

  6. 学生学python编程---实现贪吃蛇小游戏+源码

    学生学python编程---实现贪吃蛇小游戏+源码 前言 主要设计 1.蛇的表示 2.蛇怎么移动? 3.玩家控制小蛇移动功能的实现 4.如何判定游戏结束? 应用知识点 1.python知识点 1.1 ...

  7. python逻辑运算的一些流程图_Python猜数小游戏

    使用random变量随机生成一个1到100之间的数 采集用户所输入的数字,如果输入的不符合要求会让用户重新输入. 输入符合要求,游戏开始.如果数字大于随机数,输出数字太大:如果小于随机数,输出数字太小 ...

  8. Python开发转盘小游戏

    Python开发转盘小游戏 Python  一 原理分析 Python开发一个图形界面 有12个选项和2个功能键 确定每个按钮的位置 每个按钮的间隔相同 点击开始时转动,当前选项的背景颜色为红色,其他 ...

  9. 一行代码就能使用PYTHON开发的小游戏

    导语: 哈喽~~没错这期又是游戏集!!! 都是童年玩的小游戏啦~一行代码就能进入使用Python开发的小游戏快乐玩耍了

最新文章

  1. HiLink LiteOS IoT芯片 让IoT开发简单高效
  2. mysql 优化器代码_Mysql查询优化器
  3. 供应商主数据屏幕增强
  4. 笔记整理-信息系统开发基础-软件测试-模糊测试
  5. leetcode-21-合并两个有序链表
  6. E 做任务三(区间)
  7. log4j 禁止类输出日志_log4j 2过滤spring日志遇到的问题
  8. [GCJ] Qualification Round 2017
  9. Android 在popupWindow上用autoCompleteTextView报错(Android 6.0报错,8.0没有问题)
  10. html自动生成工具_「写论文神器」一个好用的论文自动生成工具,内含30w 文献数据...
  11. logging 日志表的设计
  12. python在自动化中的应用_python中在自动化运维的应用
  13. 37.django基础概念
  14. 解决wordpress用户注册时,点击邮件中的重置密码链接提示“您的密码重设链接无效”
  15. Css选择器命名规则
  16. MySQL 数据库扩容方案
  17. excel中插入的图表保存时提示 无法保存 html,excel表格保存不了的解决方法步骤...
  18. iperf和iperf3测速使用
  19. 清华大学网上课程面向全国免费开放!无需登录、注册!在家上清华!
  20. 硬盘突然变raw格式_硬盘变成RAW格式怎么办

热门文章

  1. 公众号快速涨粉方法汇总
  2. LiveNVR监控摄像头Onvif/RTSP接入流媒体平台如何配置默认用户账户及用户密码
  3. Nao机器人如何实现视频监控
  4. 2019最新千峰PHP全套教程(最新完整)
  5. 什么是拼多多通用券|盛天海科技
  6. db的中英文全称_DB是什么?解读《北京遇上西雅图》中英语文化
  7. 深度学习部署(十八): CUDA RunTime API _wa_仿射变换的实现
  8. 个人物联网(目前用到了树莓派、PMS7003攀藤g7传感器、DHT11温湿度传感器)
  9. c语言linux系统时间,【整理】C语言设置Linux系统时间 | 勤奋的小青蛙
  10. formidable示例运行报错,解决方法