基于python的中国象棋系统设计实现

 2023-01-15 02:01

论文总字数:18357字

摘 要

随着互联网的发展,休闲游戏成为人们空闲娱乐使用最多的应用软件,其中,中国象棋作为一款经典的棋类游戏,不仅是中华民族的传统竞技游戏,在国内深受群众们的喜爱,而且流传国外,所以将经典的棋类游戏融入更多网民的生活是非常有意义的。

基于Python实现的中国象棋程序具有开发简单,响应速度快的巨大优势,通过人机对弈实现功能开发模块相对独立的象棋程序,体现了系统开发的模块化思想。人机对弈就是人和机器对战,机器的水平应该越高越好。系统包含红方、黑方两种角色,通过自由摆放棋子,轮流走红黑双方的棋子,分析棋谱,提高下棋水平。人机对弈会产生棋谱,使用基于UCT算法的搜索流程优化人机对战,结果能较大限度的拟合最优解,充分体现深度学习对于中国象棋程序的可扩展性。

本系统使用Python语言实现,图形用户界面使用Pygame库函数进行界面设计以及事件响应,人机对弈主要使用的Alpha-Beta算法,提高面向对象的程序设计能力,同时也将人工智能相关知识应用其中。

关键字:Python;中国象棋;UCT算法;人机对弈

Abstract

With the development of the Internet, casual games have become the most used application software for people"s leisure entertainment. Among them, Chinese chess, as a classic game, is not only a traditional entertainment game of the Chinese nation, it is loved by the masses at home and spread abroad. Therefore, It is very meaningful to integrate classic board games into the lives of more and more netizens.

The Chinese chess program based on Python has great advantages of simple development and fast response speed. The relatively independent function development module of the chess program is realized through man-machine game, which reflects the modular idea of system development. Man-machine game is a battle between man and machine. The higher the level of the machine, the better. The system includes two roles: red and black. By freely placing the pieces, the red and black pieces take turns to analyze the game record and improve the level of chess. Human-computer games will generate chess records. The search process based on UCT algorithm is used to optimize human-computer games. The results can fit the optimal solution to a large extent, which fully reflects the scalability of deep learning for Chinese chess programs.

This system is implemented in Python language, the graphical user interface uses Pygame library functions for interface design and event response, and the Alpha-Beta algorithm, which is mainly used in human-computer games, improves the ability of object-oriented programming and also applies artificial intelligence related knowledge.

Keywords: Python; Chinese chess; UCT algorithm; human-computer game

目录

摘要 I

Abstract II

第一章 研究背景及意义 1

1.1研究背景 1

1.2发展现状 1

1.3论文组织结构 2

第二章 基础理论与知识简介 3

2.1 Python 3

2.2 UCT算法 3

2.3中国象棋 4

2.4本章小结 4

第三章 系统分析 5

3.1 功能分析 5

3.1.1棋子功能分析 5

3.1.2棋盘功能分析 6

3.1.3人机对弈功能分析 8

3.2 流程分析 9

3.2.1 棋盘绘制流程 9

3.2.2 棋盘走棋流程 10

3.3可行性分析 11

3.4本章小结 12

第四章 系统设计与实现 13

4.1 界面设计实现 13

4.2 功能设计实现 14

4.2.1棋子规则 14

4.2.2将军检测 14

4.2.3走棋规则 15

4.3 UCT流程设计实现 15

4.4 人机博弈流程设计实现 15

4.5 本章小结 16

第五章 系统测试 17

5.1 游戏测试 17

5.2 测试结果分析 25

5.3 本章小结 25

第六章 总结与展望 25

致谢 27

参考文献 28

研究背景及意义

1.1研究背景

中国象棋是以前的军际象棋,发源于山西沁县,战国时期录入《楚辞》,具有很久的历史。据出土文献记录,战国时代的象棋是封建社会贵族的休闲娱乐项目,后经士族推广,在贵族阶层中广泛流行开。据考古研究及象棋的形制推断,公元前11世纪即周朝建朝初期,象棋游戏就已经产生,后经过 几千年的演化发展才形成今天的固定规则。

中国象棋的起源太过久远,但是基于文字记载,战国时代的文博象棋是现代中国象棋的雏形。战国时期的中国象棋就已经划分对阵双方,但是只设棋子6枚作为对阵战士。到了唐朝,军事社会的发展为中国象棋增加了战士种类的初步划分,将四个战士类型布局在64方格的棋盘中,至此,中国象棋的游戏规则发生了很大变化,将有“将、马、车、卒”4个兵种布局在黑白相间的64个方格盘上,组成唐朝象棋的基础模型。后来,中国象棋的棋盘又发生一些改变,通过参照我国的围棋棋盘,将64个黑白相间的方格变为90个黑白相间的格点。直到宋代,因火药的发明为中国象棋增加了“炮”作为新加兵种,还设置了“士”和“象”两种棋子保护将,形成独具特色的宋代象棋。宋代出现了最早的象棋棋谱,据宋代文献《事林广记》的记载,当时士族的休闲娱乐遍布棋谱谈论之风,这是中国目前发现的基于象棋棋谱的最早记载,比西方15世纪出现的国际象棋的棋谱早200多年。推翻了长期以来流行的“印度象棋起源于欧洲,中国象棋起源于印度”的说法。到了明代,象棋已经成为大众的娱乐项目,为了更好的推广发展象棋,也为了下棋过程中棋子位置记忆的方便,将对阵双方中一方的“将”改为“帅”,和现代中国象棋出现一样的基本布局。经过清朝和民国时代的动乱,中国象棋由华人以及外国人研究对弈,逐渐流传到亚洲附近的十几个国家和地区,例如现在的在日本、菲律宾也有当初中国象棋的发展延申痕迹,现在,为了保护发展国粹,华人聚集的外国区域还成立了中国象棋协会,成为了中华文明的文化象征。

象棋是中华民族引以自豪的文化遗产,到现在中国象棋已经取得了广泛的发展 ,大江南北、城市乡村,到处可以遇到中国象棋的爱好者。随着群众性活动以及各级各类比赛活动的开展,中国象棋布局逐渐完善,棋手竞技水平不断提升,中国象棋走向世界,逐渐进入大众视野。

1.2发展现状

上世纪80年代开始,计算机技术急速发展,PC机大行其道,多媒体技术逐步发展成熟,电脑游戏就成为了人们生活中休闲娱乐的方式,计算机以及多媒体融合的图像开发技术成为了游戏应用软件的最佳先行者。对于硬件来说,3Dfx公司的3D显卡为计算机硬件的图像处理行业带来了一场图像革命,对于软件来说,成熟的操作系统加上键盘鼠标的标准化设计,互联网驱动的PC端电脑游戏迎来最大的发展契机,出现了一大批早期的传统游戏转向电子游戏的开发浪潮。到了90年代,电脑软硬件技术不断进步,国际互联网因为因特网的广泛使用为电脑游戏产业带来巨大的用户潜力和市场规模,这些都为传统娱乐项目的软件程序应用发展带来了强大的动力。进入21世纪,移动智能终端的发展为网络游戏提供更加强大的用户市场,现在的网络游戏已经成为人们休闲娱乐的最佳选择。

剩余内容已隐藏,请支付后下载全文,论文总字数:18357字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;