绝杀慕尼黑评价-
《人工智能课程设计》
I
目录
第一章
需求分析
................................................. 1
1.1
总体分析
.
.......... ...............................................
1
1.2
初始化
.
........... ................................................
1
1.3
主循环控制模块
.
....... ............................................
1
1.4
玩家下子
.
................ .........................................
1
1.5
盘面分析填写棋型表
.
........... ....................................
2
1.6
对方下子
.
................ .........................................
2
1.7
胜负判断
.
................ .........................................
2
第二章
功能描述
................................................. 3
2.1
功能模块图
.
......... ..............................................
3
2.2
功能说明
.
.......... ...............................................
3
第三章
系统设计
................................................. 4
3.1
流程图
.
........... ................................................
4
3.2
流程图说明
.
......... ..............................................
5
第四章
运行结果
................................................. 6
第五章
总结
......................................
错误!未定义书签。
第六章
致谢
......................................
错误!未定义书签。
附录一
参考文献
................................................. 8
附录二
源代码
.................... ............................... 9
II
课程设计综合课程设计
五子棋游戏
第一章
需求分析
1.1
总体分析
软件需求分析是软件开发周 期的第一个阶段,
也是关系到软件开发成败的关键一
步。
对于任何一个软件而言,需求分析工作都是至关重要的一步。
只有通过软件需求
分析,
才能把软件的功能和 性能由总体的概念性描述转化为具体的规格说明,
进而建
立软件开发的基础。
实践表明 ,
需求分析工作进行得好坏,
在很大程度上决定了软件
开发的成败。
软件需求分析的任务是:
让用户和开发者共同明确将要开发的是一个什么样的软
件。具体而言 ,就是通过对问题及其环境的理解、分析和综合,建立逻辑模型,完成
新软件的逻辑方案设计。
基于本游戏,
首先得为整个棋盘建立一张表格用以记录棋子信息,
我们使用一个
15*15
的二维数组
Table[15][15](15*15
是五子棋棋盘的大 小
)
,数组的每一个元素
对应棋盘上的一个交叉点,用‘0’表示空位、‘1’代表己 方的子、‘2’代表对方
的子;
这张表也是今后分析的基础。
在此之后还要为两个玩家 双方各建立一张棋型表
Computer[15][15][4]
和
Player[1 5][15][4]
,用来存放棋型数据。
1.2
初始化
首先,建立盘面数组
Table[15][15]
、对战双方的棋型表
Compu ter[15][15][4]
和
Player[15][15][4]
并将它们清零 以备使用;然后初始化显示器、键盘、鼠等输入
输出设备并在屏幕上画出棋盘(棋盘可以不显示)
。
1.3
主循环控制模块
控制下棋顺序,
当轮到 某方下子时,
负责将程序转到相应的模块中去,
主要担当
一个调度者的角色。
1.4
玩家下子
当轮到玩家下时,
您通过键盘或鼠标在棋盘上落 子,
程序会根据该点的位置,
在
Table[15][15]
数组的相应地方 记录‘2’,以表明该子是玩家下的。
1
课程设计综合课程设计
1.5
盘面分析填写棋型表
您 在下五子棋时,
一定会先根据棋盘上的情况,
找出当前最重要的一些点位,
如
“活三”、
“冲四”等;
然后再在其中选择落子点。
先来分析己方的棋型,
我 们从棋
盘左上角出发,
向右逐行搜索,
当遇到一个空白点时,
以它为中心向左 挨个查找,
如
果遇到己方的子则记录然后继续,
如果遇到对方的子、
空白点或 边界就停止查找。
左
边完成后再向右进行同样的操作;
最后把左右两边的记录合并起来 ,
得到的数据就是
该点横向上的棋型,然后把棋型的编号填入到
Computer[x ][y][n]
中就行了(
x
、
y
代表坐标,
n=0
、
1
、
2
、
3
分别代表横、竖、左斜、右斜四个方向)< br>。而其他三个方向
的棋型也可用同样的方法得到,当搜索完整张棋盘后,己方棋型表也就填写完毕 了。
然后再用同样的方法填写对方棋型表。
注意:所有棋型的编号都要事先
定义好,越重要的号数越大!
1.6
对方下子
有
了
上
面
填
写
的
两
张
棋
型
表
,
就
是
遍
历
棋
型
表
Computer[15][15][4]
和< br>Player[15][15][4]
找出其中数值最大的一点,在该点下子即可。但这种算法的 弱点
非常明显,
只顾眼前利益,
不能顾全大局,
这就和许多五子棋初学者一样 犯了“目光
短浅”的毛病。
如果在这儿下子将会形成对手不得不防守的棋型
(例如:
‘冲四’、
‘活三’)
;那么下一步对手就会照您的思路下子来防守您,如此 一来便完成了第一
步的预测。
这时再调用模块
4
对预测后的棋进行盘面分析,
如果出现了‘四三’、
‘双
三’或‘双四’等制胜点,
那么己方就可以获胜了
(当然对黑棋而言‘双三’、
‘双
四’是禁手,
另当别论)
;
否则照同样的方法向下分析,
就可预测出第二步、
第三步??
等一等,< br>要是盘面上没有对手必须防的棋型,
哪该怎么办呢?进攻不成的话就得
考虑防守了,将自己和对手调换一下位置,
然后用上面的方法来预测对手的棋,
这样
既可以防住 对手巧妙的攻击,又能待机发动反击,何乐而不为呢!
1.7
胜负判断
务须多言,
某方形成五子连即获胜;
若黑棋走出‘双三’、
‘双四’或长连即 以
禁手判负。
2
课程设计综合课程设计
第二章
功能描述
2.1
功能模块图
五子棋游戏
判断
棋盘
是否< br>已满
判断
是否
出错
并提
示
判断
那方
获胜
交替
循环
双方
下棋
图
2.1
功能模块图
2.2
功能说明
该 五子棋程序基本上实现了五子棋的游戏功能,
有双方下棋的界面及最终判定结
果的界面。
同时该游戏采用二维坐标实现,
明了易懂,
方便玩家在游戏过程中的基本
操作,使游戏更加简便。
在细节方面,
该系统提供实时存储功能,
随时记录为完成的游戏,
使用户可以很好的处理意外中断的情况。
该游戏基本实现了游戏的一些要求和
特征。在游戏的源程序及文档方面,我们也严格遵守软件工程思想,立足实验要求,
确定任务,需求分 析,设计和编码,每个步骤力求清晰易懂。原代码注释详尽,各功
能模块功能分明,
可移植性强 。
当然该系统也有很多不足的地方,
第一次进行独立的
课程设计,
也有很多细 节方面是考虑到的,
这款游戏也是在不断的调试和修改中产生
和完善的。希望老师能够指出不足 ,帮助我不断提高。
3
课程设计综合课程设计
第三章
系统设计
3.1
流程图
开始
棋盘已满
是
输出平局
否
“
0
”方选位置
判断该位置是否有棋
有
另找位置
无
“
0
”方落子
否
判断“
0
”方是否获
胜
是
输出“
0
”
方获胜
否棋盘已满
是
输出平局
结束
否
“
x
”方选位置< br>判断该位置是否有棋
有
另找位置
无
“
x
”方落子判断“
x
”方是否获
胜
是
输出
“
x
” 方
获胜
图
3.1
流程图
4
课程设计综合课程设计
3.2
流程图说明
本程序定义 了各种操作函数、
各种状态判定宏,
思想明确,
思路清晰。
各个判断
选择了不同路径,因此继续进行或输出结果。程序中,
“循环”的利用非常直接和清
晰,双方交 替下棋,因此循环往复。最终决出胜负或最终平局。分析时,也考虑了许
多种情况,针对各个情况均作出 了相对措施和解决方案
。
程序采用循环进行双方交替下棋,并进行了很多判断。首先 判断棋盘是否已满,
若棋盘已满,则输出平局,结束游戏;若棋盘未满,则继续进行。然后判断“
0
”方
是否胜出,若“
0
”方获胜,则输出“
0
”方获胜 ,结束游戏;若“
0
”方没有获胜,
则继续进行。再判断“
x
”方是 否获胜,若“
x
”方获胜,则输出“
x
”方获胜,结束
游戏;若“< br>x
”方没有获胜,则继续进行。回到“首先”的判断。如此循环??
5
绝杀慕尼黑评价-
绝杀慕尼黑评价-
绝杀慕尼黑评价-
绝杀慕尼黑评价-
绝杀慕尼黑评价-
绝杀慕尼黑评价-
绝杀慕尼黑评价-
绝杀慕尼黑评价-
本文更新与2021-01-27 05:57,由作者提供,不代表本网站立场,转载请注明出处:http://www.xapfxb.com/yuer/429889.html