五子棋游戏软件说明书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

五子棋游戏软件说明书

一.软件名称及版本号:五子棋游戏1.0版。

二.开发人员:王峰,李杰(0412)。

三.开发时间:2007.3.25——2007.4.9 ;大约两周。

四.分工:王峰主要进行需求分析,算法设计,底层人工智能的实现以及文档的编写。李杰主要进行图形界面的设计和编写。

五.软件介绍:

(一)核心功能

1.实现人机对战。电脑操作由人工智能实现,玩家操作通过触发鼠标事件来实现。

2.玩家与电脑轮流下子,己方落子后对方落子前,己方不能再触发鼠标事件控制棋子。

3.可以悔棋,通过点击<悔棋>键来回滚。

4.先连成5子者胜利。若一方胜出,本盘游戏结束,不能再对棋盘进行任何操作,也不能再悔棋。系统询问是否进行下一盘棋,点击<

是>重开局,点击<否>清空棋盘区域。

5.开始新棋局的步骤:选择<菜单>中的<开始>或点击界面中的<开始>键,游戏开始。

6.认输(只有人可以实现),点击<认输>后游戏结束,进行4。

7.屏幕大小固定。

(二)附属功能

1.菜单功能键:

(1) <开始>:开局。

(2) <退出>:退出游戏

(3) <游戏说明>:

(4) <使用帮助>:

(5) <背景音乐>:打开,关闭

(6) <音效>:打开,关闭

(7) <背景图片>:可以更换背景

2.界面构成:

(1)菜单

(2)棋盘

(3)功能按钮:<开始>、<悔棋>、<认输>

(4)时间显示框

(5)棋手小图片

(6)背景图片

六.人工智能算法:

1.数据结构

首先得为整个棋盘建立一张表格用以记录棋子信息,我们使用一个15*15的二维数组Table[15][15] (15*15是五子棋棋盘的大小),数组的每一

个元素对应棋盘上的一个交叉点,用‘0’表示空位、‘1’代表玩家的子、‘2’代表电脑的子,‘4’表示要进行预测的点。这张表是今后分析的基础。

在此之后还要为电脑和玩家双方各建立一张棋型表computer[15][15][4]

和player[15][15][4],用来存放棋型数据——就是各个棋子落点各个方向的重要程度,比如用‘4’代表在同一条线上已经有4个己方落子的点a,用‘2’代在同一条线上已经有4个己方落子的点b,那么在计算重要性时,就可以根据4大于2得出前者比后者重要,下子时电脑便会自动选择a点,来使5个子连起来。那为什么棋型表要使用三维数组呢?因为棋盘上的每一个点都可以与横、竖、左斜、右斜四个方向的棋子构成不同的棋型,所以一个点总共有4个记录。

2. 程序流程

如读图1:

本程序由六个基本功能模块构成,各模块的详细分析如下:

(1)初始化:首先,建立盘面数组Table[15][15]、对战双方的棋型表Computer[15][15][4]和Player[15][15][4]并将它们清零以备使用。

(2)主循环控制模块:控制下棋顺序,当轮到某方下子时,负责将程序转到相应的模块中去,主要担当一个调度者的角色。

(3)玩家下子:当轮到玩家下时,通过鼠标在棋盘上落子,程序会根据该点的位置,在Table[15][15]数组的相应地方记录‘2’,以表明该子是电脑下的。

(4)盘面分析填写棋型表:本程序核心模块之一,人工智能算法的根本依据!其具体实现方法如下:

从棋盘左上角开始到右下角结束,依次遍历各个点,将空点——即table 值为‘0’的点置为4,表示该点是要进行预测的点。先来分析进攻情况:对于每一个table值为4的点,依次统计它横向、纵向、正对角、反对角四个方向上的情况。对于一个方向,如果有己方的子——即table值为2的点,

count加1,如果有对方的子——即table值为1的点,停止计数,这样就统计出该方向上连续点的table值为2的个数,将count值记入对应的computer值中;然后将count清0,进行下一个方向的统计。当统计完周围每一个方向后,进入到下一点,重复上面的工作。全部统计完后,计算出computer[][][]数组中数值最大的一点并且记录,这就是进攻时最重要的一点。再来分析防守情况:将所有table值为4的点清0,在进行之前同样的工作,只是在统计是,寻找的是连续的table值为1的点,最后求出的最大值所对应的点是防守时最重要的点。最后比较进攻最重要的点和防守最重要的点谁更重要,即哪个点的computer值更大,大的那一点就是最后要落子的地方。

(5)根据上一步求出的最大值所对应的点,电脑落子,之后将所有table 值为4的点清0,以便下一次预测。

(6)胜负判断:某方形成五子连即获胜。

七.其他说明

在算法的设计上我们参考了网上的一些文章。在软件的图片制作方面我们得到了本班任文斌同学的帮助,表示感谢。

相关文档
最新文档