一个不知名大学生,江湖人称菜狗
original author: jacky Li
Email : 3435673055@qq.com

Time of completion:2022.11.25
Last edited: 2022.11.30

目录

​编辑

基于Pygame的中国象棋的制作(China Chess)

象棋简介

一:效果展示

二:所需配置

1.环境配置

2.图标配置

三:代码展示

四:价值展望

五:作者有言


基于Pygame的中国象棋的制作(China Chess)

象棋简介

中国象棋是起源于中国的一种棋,属于二人对抗性游戏的一种,在中国有着悠久的历史。由于用具简单,趣味性强,成为流行极为广泛的棋艺活动。

中国象棋是中国棋文化,也是中华民族的文化瑰宝,它源远流长,趣味浓厚,基本规则简明易懂。中国象棋在中国的群众基础远远超过围棋,是普及最广的棋类项目,中国象棋已流传到十几个国家和地区。

中国象棋使用方形格状棋盘,圆形棋子共有32个,红黑二色各有16个棋子,摆放和活动在交叉点上。双方交替行棋,先把对方的将(帅)“将死”的一方获胜。

一:效果展示

二:所需配置

1.环境配置

pygame

wrapt

colorama

astroid

pylint

2.图标配置

三:代码展示

对打开页面的初始化设置,可以自由更改所打开Gui框的大小与字幕。

    def start_game(self):MainGame.window = pygame.display.set_mode([constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT])pygame.display.set_caption("李创奇 - 中国象棋")MainGame.button_go = Button(MainGame.window, "重新开始", constants.SCREEN_WIDTH - 100, 300)  self.piecesInit()

通过pygame 的相关函数对棋盘进行绘制

    def drawChessboard(self):mid_end_y = MainGame.Start_Y + 4 * MainGame.Line_Spanmin_start_y = MainGame.Start_Y + 5 * MainGame.Line_Spanfor i in range(0, 9):x = MainGame.Start_X + i * MainGame.Line_Spanif i==0 or i ==8:y = MainGame.Start_Y + i * MainGame.Line_Spanpygame.draw.line(MainGame.window, constants.BLACK, [x, MainGame.Start_Y], [x, MainGame.Max_Y], 1)else:pygame.draw.line(MainGame.window, constants.BLACK, [x, MainGame.Start_Y], [x, mid_end_y], 1)pygame.draw.line(MainGame.window, constants.BLACK, [x, min_start_y], [x, MainGame.Max_Y], 1)for i in range(0, 10):x = MainGame.Start_X + i * MainGame.Line_Spany = MainGame.Start_Y + i * MainGame.Line_Spanpygame.draw.line(MainGame.window, constants.BLACK, [MainGame.Start_X, y], [MainGame.Max_X, y], 1)speed_dial_start_x =  MainGame.Start_X + 3 * MainGame.Line_Spanspeed_dial_end_x =  MainGame.Start_X + 5 * MainGame.Line_Spanspeed_dial_y1 = MainGame.Start_Y + 0 * MainGame.Line_Spanspeed_dial_y2 = MainGame.Start_Y + 2 * MainGame.Line_Spanspeed_dial_y3 = MainGame.Start_Y + 7 * MainGame.Line_Spanspeed_dial_y4 = MainGame.Start_Y + 9 * MainGame.Line_Spanpygame.draw.line(MainGame.window, constants.BLACK, [speed_dial_start_x, speed_dial_y1], [speed_dial_end_x, speed_dial_y2], 1)pygame.draw.line(MainGame.window, constants.BLACK, [speed_dial_start_x, speed_dial_y2],[speed_dial_end_x, speed_dial_y1], 1)pygame.draw.line(MainGame.window, constants.BLACK, [speed_dial_start_x, speed_dial_y3],[speed_dial_end_x, speed_dial_y4], 1)pygame.draw.line(MainGame.window, constants.BLACK, [speed_dial_start_x, speed_dial_y4],[speed_dial_end_x, speed_dial_y3], 1)

通过某方“将”或“帅”的缺失判断游戏的胜利与失败

    def VictoryOrDefeat(self):txt =""result = [MainGame.player1Color,MainGame.player2Color]for item in MainGame.piecesList:if type(item) ==pieces.King:if item.player == MainGame.player1Color:result.remove(MainGame.player1Color)if item.player == MainGame.player2Color:result.remove(MainGame.player2Color)if len(result)==0:returnif result[0] == MainGame.player1Color :txt = "失败!"else:txt = "胜利!"MainGame.window.blit(self.getTextSuface("%s" % txt), (constants.SCREEN_WIDTH - 100, 200))MainGame.Putdownflag = constants.overColor

四:价值展望

中国象棋,不仅仅是茶余饭后的娱乐消遣,其本身更具有文化特征和教育功能

象棋是极严密的逻辑思维,每动一子都可能影响全盘局势和应变机会,充满了思维辩证哲学。如一昧进攻往往收效甚微,防守反击却能收获奇效,这一点在《梅花谱》中尤为明显,后手屏风马阵型工整可破先手中炮。

象棋是最好的智力体操,其总体思路或行棋落子,都是复杂综合的心智活动。人们往往忽视它的教育启智功能和对良好心理素质的培养作用。

象棋可培养人良好的意志品质。其比赛规则的“摸子走子,落子无悔”,就要求弈棋者通盘慎重,作决定要果断。举棋不定是缺乏自信心和果断性的表现。悔棋是棋品和规则所不容许的,是出尔反尔没有定见的表现。

象棋可培养良好的记忆力和空间想象力。棋艺提高到一定阶段,常可见下盲棋,即只用口说着法而不见棋秤与棋子。著名象棋宗师胡荣华就曾创盲目1对14人的记录。棋艺与记忆及想象之关系极为密切,没有人棋艺高而心智差的,二者相辅相成,互相促进。

中国象棋是模拟的古代战争、直线战争、陆地战争、平面战争。在中国古代,象棋被列为士大夫们的修身之艺。现在,则被视为是怡神益智的一种有益身心的活动。象棋集文化、科学、艺术、竞技于一身,不但可以开发智力,启迪思维,锻炼辨证分析能力和培养顽强的意志,而且可以修心养性,陶冶情操,丰富文化生活,深受广大群众的喜爱。古今中外男女老少皆宜,由于用具简单,趣味性强,大街小巷常常可见纹枰对弈的中国象棋爱好者。

中国象棋已有几千年历史、充满东方智慧的中国象棋在中国的群众中基础远远超过围棋,一直是普及最广的棋类项目。

中国象棋属于“象棋C语言”(象棋China语言),从这个角度分析看待,其它象棋的产生,基本都调用了这部“象棋C语言”的一些关键模块及对话语句。

而好笑的是象棋C语言是使用python实现的

五:作者有言

如果需要代码,请私聊博主,博主看见回。

如果感觉博主讲的对您有用,请点个关注支持一下吧,将会对此类问题持续更新……

基于Pygame的中国象棋的制作(China Chess)相关推荐

  1. 基于pygame的射击小游戏制作(一)让飞船动起来

    基于pygame的射击小游戏制作(一)让飞船动起来 一.文件结构 alien_invasion.py 是整个系统的主文件,用来创建游戏中的一系列对象,ai_settings存储设置.screen存储显 ...

  2. java中国象棋网络对弈_基于JAVA的中国象棋对弈系统(附答辩记录)

    基于JAVA的中国象棋对弈系统(附答辩记录)(包含选题审批表,任务书,开题报告,中期报告,毕业论文7100字,程序) 摘  要:本毕业设计采用Java实现中国象棋对弈,可以由两个玩家操作来进行.其图形 ...

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

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

  4. 12年前的作品──《美绿中国象棋》制作过程及算法简介

    这个游戏是大学本科二年级时(1998年)修人工智能课程的功课 .这个游戏的「棋力」并不高,主要是因为没有花时间在调整的工作上.比较满意的部分是使用 OpenGL 做的使用者介面.本文将简单介绍制作本游 ...

  5. 基于java的中国象棋的设计与实现

    技术:Java等 摘要: 中国象棋作为中华民族的文化瑰宝,千百年来常盛不衰,在中国有非常广泛的大众基础,在社会上有广泛的认同,它不仅是人们茶余饭后消遣娱乐的工具,其本身更是具有严密的逻辑和教育功能.随 ...

  6. 基于java的中国象棋的设计与实现毕业设计

    介绍: java,eclipse Java中国象棋项目完成后由Eclipse Java开发环境开发工具,软件使用EclipseJDK所以直接从开放源码下载网站,不是由自己收取的项目参考资料完成独立的文 ...

  7. 基于Java的中国象棋游戏的设计与实现

    技术:Java等 摘要: 近些年,Java技术日趋成熟,它的跨平台性,健壮性以及使用人数的增多都表明了它的受欢迎程度不断攀升,因此选用了Java语言作为中国象棋游戏的开发语言.并且中国象棋文化源远流长 ...

  8. 基于pygame的射击小游戏制作(五)绘制开始按钮

    在本篇文章中,主要学习如何在Pygame中绘制按钮,并点击按钮开始游 一.编程思路 1.1 修改游戏活动状态 在上篇文章中,我们通过game_active标志来控制游戏的进行与停止.我们需要在点击&q ...

  9. 基于pygame的射击小游戏制作(四)击杀外星人

    在本篇文章中,主要学习射击子弹时外星人消失,达到击杀外星人的效果 一.编程思路 1.1击杀 我们需要在碰撞发生后让外星人立即消失,故在更新子弹的位置后检测碰撞.我们创建一个字典,这个字典的每一个键都是 ...

  10. 基于pygame的射击小游戏制作(三)让外星人动起来

    在本篇文章中,将学习如何创建一群外星人,如何使用嵌套循环来创建元素网格,如何移动外星人 1.编程思路 1.1 创建外星人 创建Alien.py 文件,该文件配置与Ship.py类似,每个外星人最初都出 ...

最新文章

  1. uc3842开关电源电路图_UC3842构成的开关电源电路
  2. 6 交换机-topic类型
  3. 如何将nodejs项目程序部署到阿里云服务器上
  4. 字符大小端aix linux,Go交叉编译的那些事
  5. Windows Server 2012 R2 官方原版镜像(转载)
  6. 新浪微博分享遇到的心酸的问题
  7. Visual SourceSafe如何支持并行开发
  8. 设置电子围栏 高德地图_高德地图 自动生成电子围栏
  9. 5 款让开发效率倍增的 VS Code 插件
  10. excel自学第1天_excel制作项目时间进度表_excel表头
  11. 怎样清除浏览器缓存?
  12. 去除stackoverflow页面上关不掉的cookie弹窗
  13. 华硕VIVO BOOK15s啃苹果之路
  14. 数据库管理-第四十四期 数据库的物理隔离(20221118)
  15. 顺利通过论文查重检测的小技巧
  16. 【物联网控制技术题目】【根轨迹】
  17. 10分钟解决一天工作量它不香吗?没有想到你们竟这么想…
  18. 贪心算法---跳楼梯问题
  19. Edge浏览器实现免费数学公式识别LaTex、Mathtype、Word、Markdown等亲测可用,不限次数
  20. 分享dedecms系统被挂黑链的几个原因

热门文章

  1. Python之路第七天,基础(9)-面向对象(上)
  2. python七巧板拼图代码_为什么代码都是用英文来写的,将来会有用中文写代码的那天吗?...
  3. FallbackFactory使用
  4. java打字小游戏_JAVA打字小游戏
  5. HDR视频生态系统纵览
  6. odi连接oracle数据库,ODI Studio 11g 连接Essbase数据源
  7. 工厂不存在导致的采购订单无法修改报错处理
  8. RecyclerView通用适配器
  9. IJCAI-18 阿里妈妈搜索广告转化预测 Top2%思路
  10. 让我带你一起了解一下 ls -l 命令输出的内容都有哪些意义,以及文件权限如何调整