毕 业 设 计
中国象棋游戏的
设计与实现
摘 要
中国象棋发展至今已有数千年的历史了,它是中华民族智慧的结晶。在我国,中国象棋的普及程度是其它棋类无法比拟的,大至国际、国内比赛,小至社区街道。如今,仅中国就有2亿人会下中国象棋,且中国象棋的发展趋势日益国际化。本文首先研究了中国象棋在
计算机中的表示
问题,讨论如何产生着法等一系列相关内容,其次研究了博弈树的
搜索技术及在此基础上发展起来的相关剪枝算法。
系统使用MFC
文档视图体系结构和Visual C++开发工具,实现了一个具有一定棋力的中国象棋人机对弈
程序。此博弈程序实现了人机博弈,悔棋,电脑难度设置,着法名称生成等功能。
关键词:中国象棋 人工智能 博弈树 Alpha-Beta搜索
目 录
1 前言 1
1.1 中国象棋游戏设计背景和研究意义 1
1.2 国内外象棋
软件发展概况 1
1.3 中国象棋游戏设计研究方法 1
1.4 本文的主要
工作 2
2 棋局表示和着法生成 2
2.1 棋盘和棋子的表示 2
2.2 着法生成 4
3 走棋和博弈程序的实现 5
3.1 博弈程序的实现 5
3.1.1 搜索算法 5
3.1.2 着法排序 8
3.1.3 局面评估 9
3.2 悔棋和还原功能的实现 11
3.3 着法名称显示功能的实现 12
3.4 胜败判定 14
4 界面设计和系统实现 15
4.1 界面设计 15
4.2 系统实现 17
5 总结 21
参 考 文 献 23
ABSTRACT 24
致 谢 25
仲恺农业工程
毕业论文(设计)成绩评定表 26
1 前言
1.1 中国象棋游戏设计背景和研究意义
中国象棋游戏流传至今已经有数千年的历史了,是一种古老的文化,它集文化、科学、艺术、竞技于一体,有利于开发人的智慧,锻炼人的思维,培养人的毅力,增强人的竞争意识。自从计算机发明,向各个领域发展,到成为我们现在每天工作和生活必不可少的一部分的这个过程中,电子游戏也逐步渗入我们每个人的娱乐活动中。在计算机已经普及的今天,对于可以用计算机进行程序编辑的人来说,开发属于自己的游戏,已经不再是梦想,中国象棋历史悠久不仅源远流长,而且基础广泛,作为一项智力运动更成为我们游戏开发的首选对象。
中国象棋是一项智力游戏,以往都是人和人下棋,现在有了计算机我们可以和计算机竞技,人可以与计算机进行对弈。控制计算机的是人类,而人工智能是综合性很强的一门边缘学科,它的中心任务是研究如何使计算机去做那些过去只能靠人的智力才能做的工作。因此,对游戏开发过程中的人工智能技术的研究自然也就成了业界的一个热门研究方向。
1.2 国内外象棋软件发展概况
最早的象棋软件是一副可以外出携带的电子棋盘,后来升级到电视游戏机。开始出现的一些容量很小的象棋软件如:DOS界面《将族》、WIN31程序的《中国象棋》等等,与其说人类下不过电脑,倒不如说是没有耐性等待电脑程序慢吞吞的搜索算法,有时甚至怀疑软件是否在搜索中死掉了。后来,
网络上先后出现了真正的WINDOWS窗口界面的象棋专业高级软件《棋隐》、《象棋世家》、《象棋参谋》、《象棋奇兵》等。总而言之,各类象棋软件既有自身的优点,也存在共通性的缺陷,如:中局审势不够智能化,走不出弃子取势的人性化佳构,残局时智力明显低于人脑,难以走出残局例胜的必然着法等。放眼未来,象棋软件已经走完了一波持续上涨的行情,有可能出现逐步降温的滑坡趋势。
1.3 中国象棋游戏设计研究方法
本系统主要用 Visual C++ 进行开发,里面的MFC类库,使游戏开发更加方便,并利用人工智能相关搜索算法实现人工智能的着法生成,从而完善整个游戏的功能。
该象棋人机博弈系统实现的功能主要包括:
1、选手选择(人或电脑);
2、人机对弈(人与电脑竞技);
3、