中国象棋人机对弈游戏的设计研究(共6部分)

论文帮手 4本页 1555字

摘 要

  该课题是对人机博弈理论的一次具体实现,研究并实现该课题,是对大学本科阶段所学内容的一次具体实践,作为博弈技术的研究意义,它所衍生而来有多种应用,如航空调度、天气预报、资源勘探、军事博弈,金融,经济,经济调控等领域,也取得了大量引人瞩目的成果。经过多年的发展,博弈技术算法已经很成熟,这些算法主要考虑的是效率的优化,当然,效率高者其理论层次也必然相当深厚,限于我学识的浅薄,以及时间的有限,以至于只能理解到其中最基本,最浅的层次,因此,本次设计采用的博弈理论的最基本技术------AlphaBeta搜索技术,当然,其效率也不会高到哪里去。

  关键词: 极大极小值算法;深度搜索;AlphaBeta搜索;估值技术

Abstract

  This article is an implementation of gambling technology, as the meaning of whitch, it has grew many kinds of applications, as aviation dispatch, weather forecast, resource prospecting, military gambling, finance, domain , economical regulation and so on. After many years development, the gambling technology algorithm has very mature, These algorithm’s main considerations is the efficiency optimization, Certainly, the more efficiency, the theory level inevitably is also very deep. As the limited time, I can only understand the most basic part. So, this design uses the most basic technical of gambling theory------Alpha Beta search technology. But certainly, it can’t get any  efficiency.

  Key  Words:M inimax Algorithm;Depth FirstSearch;AlphaBeta search;Estimate value technology

目 录

  1 引言

  2 设计需求

  2.1 走法规则

  2.2 功能

  2.3 系统环境需求

  3 概要设计

  3.1 系统流程图

  3.1.1 顶层图

  3.1.2 人机对弈功能模块

  3.1.3 制作棋谱功能模块

  3.1.4 保存棋谱功能模块

  3.1.5 演示棋谱功能模块

  3.2接口设计

  3.2.1 用户界面

  3.2.2 软件接口

  3.2.3 硬件接口

  3.2.4 内部接口

  3.3数据库设计

  3.3.1 记录棋盘名称

  3.3.2 记录棋盘的棋子信息

  3.3.3 棋步详细信息表

  4 搜索技术

  4.1 基本搜索技术

  4.2博弈树

  4.3极大极小值算法

  4.4深度优先搜索

  4.5 负极大值算法

  4.6 Alpha-Beta 搜索

  5 估值技术

  5.1 棋子价值评估

  5.2 棋子的灵活性与棋盘

  5.3 棋子的关系评估

  5.4 估值技术小结

  6 基本编码实现

  6.1 棋谱表示

  6.2 比较具有代表性的函数及其主要功能

  6.5 数据库操作,封装ADO

  7 性能测试

  7.1 初始界面

  7.2 人机对弈界面

  7.3 制作棋谱界面

  7.4 演示棋谱界面

  8 结论

  9 谢辞

  参考文献

中国象棋

1 引言

  接触VC++已将近两年了,此编程工具具有贴近底层、代码运行速度快、便于优化等优点,以及我对它的熟悉程度绝对优于其它各类编程工具和编程语言,因此采用VC++成了我此次毕业设计的不二之选。

  中国象棋的设计实际上就是博弈程序的设计,博弈技术理论经过几十年的发展,已经有很多好的算法,经过对这些现有算法的仔细推敲,经过与广大博弈技术爱好者网友的交流,为了更深入的对该理伦的理解和对MFC程序设计的灵活运用,我选择了《中国象棋的设计与实现》作为我在大学本科的毕业设计课题。

  本次设计从界面到算法的实现,都完全采用“VC++ 2003”开发环境,以“ADO”作为数据库接口,配合“SQL SERVER 2000”存储其中所需保留的数据。全面的利用了我所学习知识,对于巩固掌握以上知识以及搜索技术,以及为了以后更深入的从理论上研究搜索技术,以提高其搜索效率,都是十分有意义的一件事情。

2 设计需求

  2.1 走法规则

  中国象棋是双方在由9条竖线和10条横线分割而成的棋盘上对弈。竖线与横线的交叉点称作棋点,每个棋子都放置在棋点上,而不是方格中。河界将棋盘分成两个等份,每一边都有一个由9个点组成的区域“九宫”,棋子“将”、“帅”、“士”只能在“九宫”内移动,并且“将”、“帅”的每一步只可以水平或垂直移动一个棋点。(1)士:只能在“九宫”内移动,并且每一步只可以沿对角线方向移动一个棋点。(2)象:一步必须沿对角线方向走两个棋点,但它既不能过河,也不能跳过或穿越障碍,即象在走的过程中不能被“别眼”。(3)马:每一步只可以在水平或垂直方向移动一个棋点,但必须沿对角线方向,向左或向右移动,中国象棋的马不能跳过障碍,即在走的过程中不能被“别眼”。(4)车:可以沿水平或垂直方向移动任意个无障碍的点。(5)炮:行走规则与车很类似,但它必须跳过一个棋子来吃掉对方的一个棋子。被跳过的棋子称为桥或者屏风。(5)兵:过河前每步只能向前移动一个棋点。过河后,它便增加了向左右移动的能力。兵不允许向后移动。

  2.2 功能

  可以选择初级,中级,高级等人机对弈不同级别难度。单击“中国象棋”菜单可以选择“开始游戏”,“制作棋谱”,“保存棋谱”和“演示棋谱”菜单项,并且有连接数据库配置选项,以方便适应不同环境中的数据库。选择“开始游戏”,将出现相应的棋盘,该棋盘可以进行人机实战对弈,选择“制作棋谱”,可以根据需要很方便的制定残局,在以上“人机对弈”与“制作棋谱”过程中,可以随时选择“保存棋谱”,将对弈过程或所制作的棋谱保存于数据库中。选择“演示棋谱”将显示打文件对话框,供用户选择已保存的棋谱文件,选择棋谱文件后,将显示用来演示棋谱的棋盘,用户可以选择自动或手动来演示对弈过程。自动演示时,用户还可以控制每步之间的间隔时间,也可以随时暂停演示或继续演示。

  2.3 系统环境需求

  开发系统:WINDOWS XP/WINDOWS 2003,VISUAL STUDIO 2003.NET,SQL SERVER 2000

  硬件环境:PC机,CPU:1.0G,内存:256M

(未完,请点击下面的其他章节)

相关文章

上一篇:没有了

下一篇:象棋游戏系统流程图,接口及数据库概要设计

点击按钮复制手机号

18930620780

将微信二维码保存到相册

打开微信扫一扫从相册识别

1.点击按钮复制QQ号

3008635932

2.打开QQ→添加好友/群

粘贴QQ号,加我为好友