五子棋游戏__课程设计报告(含源代码可以运行)

萌到你眼炸
901次浏览
2021年01月27日 22:18
最佳经验
本文由作者推荐

大学生诚信调查报告-庙会走透透

2021年1月27日发(作者:凝视黑夜)
v1.0
可编辑可修改





《软件基础》大作业






项目名称



五子棋游戏







0510

0605







校建林



朱颖


完成时间


2011

11

28



指导教师



鲁可



I
I




v1.0
可编辑可修改

目录

第一章

需求分析
.................................................. .................................................. ......................................... 1

开发背景

................................. .................................................. .................................................. ...................... 1

第二章

技术线路
..................................... .................................................. .................................................. .... 5

技术线路模块图
....................... ................................
5

技术线路说明
................................... ......................
5

第五章

总结
....................................... .................................................. .................................................. .......... 8

附录一

参考文献
........ .................................................. .................................................. ................................. 8








II
II
v1.0
可编辑可修改

五子棋游戏


第一章

需求分析

开发背景

软件需求分析是软件开发周期的第一个阶段,
也是关系到软件开发成败的关键一
步。
对于任何一个软件而言,
需求分析工作 都是至关重要的一步。
只有通过软件需求
分析,
才能把软件的功能和性能由总体的概念 性描述转化为具体的规格说明,
进而建
立软件开发的基础。
实践表明,
需求分 析工作进行得好坏,
在很大程度上决定了软件
开发的成败。

软件需求分析的 任务是:
让用户和开发者共同明确将要开发的是一个什么样的软
件。具体而言,就是通过对问题 及其环境的理解、分析和综合,建立逻辑模型,完成
新软件的逻辑方案设计。

基于本 游戏,
首先得为整个棋盘建立一张表格用以记录棋子信息,
我们使用一个
15*15< br>的二维数组
Table[15][15](15*15
是五子棋棋盘的大小
)< br>,数组的每一个元素
对应棋盘上的一个交叉点,用‘0’表示空位、‘1’代表己方的子、‘2’ 代表对方
的子;
这张表也是今后分析的基础。
在此之后还要为两个玩家双方各建立一张 棋型表
Computer[15][15][4]

Player[15][15][ 4]
,用来存放棋型数据。


项目目标

五子棋与游戏开发具体任务完成日期以及任务的具体分



五子棋游戏开发成员:校建林、朱颖。


五子棋游戏开发具体的任务步骤:

1.
需求分析

内容包括:总体分析、五子棋与游戏开发成员和具体任务完成日期以及任务的具体分配、
初始化、< br>主循环控制模块、玩家下子、盘面分析填写棋型表、

对方下子、胜负判
断。

2.

技术线路


1

v1.0
可编辑可修改

内容包括:采用的软件及开发平台是什么。

项目的总体方案—包括模块及模块间的联系、信息流、数据流等。

项目的详细设计—包括模块的功能、数据结构及算法等。

技术线路模块图技术线路模块图、技术线路说明。

3.
系统设计


内容包括:流程图、流程图说明。

4.
程序测试分析

5.
总结。

6.
源代码。

2.
具体日期完成任务

1.
第五周完成任务:完成具体的需求分析 中的总体分析、五子棋与游戏开发成员
和具体任务完成日期以及任务的具体分配、初始化、主循环控制模 块等部分内容
的任务。

2.
第六周完成任务:
完成具的需求分析中 的玩家下子、
盘面分析填写棋型表、


方下子、胜负判断等部分内容的任务。

3.
第七周完成任务:< br>完成具的功能描述的功能模块图、
功能说明部分内容的任务。

4.
第八周完成任务:完成具的系统设计的流程图、流程图说明部分内容的任务。

5.
第九周完成任务:完成具的程序测试结果部分内容的任务。

6.
第九周完成任务:完成具的五子棋游戏源代码中的初始化程序任务。

7.
第九周完成任务:完成具的五子棋游戏源代码中的主循环控制模块程序任务。

8.
第十周完成任务:完成具的五子棋游戏源代码中的玩家下子的有关程序任务。
< br>9.
第十一周完成任务:完成具的五子棋游戏源代码中的盘面、棋型的有关程序任
务。< br>
10.
第十二周完成任务:完成具的五子棋游戏源代码中的对方下子的有关程序任务。

11.
第十二周完成任务:完成具的五子棋游戏源代码中的整体程序任务。


2

v1.0
可编辑可修改

12.
第十三周完 成任务:
完成具的系统设计的流程图、
流程图说明部分内容的任务。

13..
第十四周完成任务:完成具的程序测试结果以及总结部分内容的任务。

3.
五子棋游戏开发具体任务的具体分配

1.
校建林、朱颖共同完成需求分析任务。
-

2.
校建 林完成具体的需求分析中的总体分析、
五子棋与游戏开发成员和具体任
务完成日期以及任务的具 体分配、初始化、主循环控制模块等部分内容的任务。

3.
朱颖完成具的需求分析中的玩家下子、盘面分析填写棋型表、

对方下子、胜
负判断等部分内容的任务。

4.
校建林、朱颖共同完 成具的功能描述的功能模块图、功能说明部分内容的任
务。

5.
校建林、
朱颖共同完成具的系统设计的流程图、
流程图说明部分内容的任务。

6.
校建林完成具的程序测试结果部分内容的任务。

7.
校建林、朱颖共同完成具的五子棋游戏源代码中的初始化程序任务。

8.
校建林、朱颖共同完成具的五子棋游戏源代码中的玩家下子的有关程序任务


10.
校建林完成具的五子棋游戏源代码中的玩家下子的有关程序任务。

11.
朱颖完成具的五子棋游戏源代码中的盘面、棋型的有关程序任务。

12.
校建林、
朱颖共同完成具的五子棋游戏源代码中的对方下子的有关程序任务。

13
.校建林、朱颖共同完成具的五子棋游戏源代码中的整体程序任务。

14.
校建林、
朱颖共同完成具的系统设计的流程图、
流程图说明部分内容的任务。

15.
校建林、朱颖共同完成具的
程序测试结果以及总结部分内容的任务。

运行环境

初始化











Table[15][15]
、< br>对







Compute r[15][15][4]

Player[15][15][4]
并将它们清零以备 使用;然后初始化显示器、键盘、鼠等输入输出设备并在
屏幕上画出棋盘(棋盘可以不显示)



项目任务书

主循环控制模块

控制下棋顺序,当轮到某方下子时,负责将程序转到相应的模块中去,主要担当一个调度者

3

v1.0
可编辑可修改

的角色。


玩家下子

当轮到玩家下时,
您通过键盘或鼠标在棋盘上落子,< br>程序会根据该点的位置,

Table[15][15]
数组的相应地方记录‘ 2’,以表明该子是玩家下的。


盘面分析填写棋型表

您在下五 子棋时,
一定会先根据棋盘上的情况,
找出当前最重要的一些点位,

“活三 ”、“冲四”等;然后再在其中选择落子点。先来分析己方的棋型,我们从棋
盘左上角出发,向右逐行搜 索,当遇到一个空白点时,以它为中心向左挨个查找,如
果遇到己方的子则记录然后继续,
如果 遇到对方的子、
空白点或边界就停止查找。

边完成后再向右进行同样的操作;
最后把左右两边的记录合并起来,
得到的数据就是
该点横向上的棋型,然后把棋型的编号填入 到
Computer[x][y][n]
中就行了(
x

y
代表坐标,
n=0

1

2

3
分别代表 横、竖、左斜、右斜四个方向)
。而其他三个方向
的棋型也可用同样的方法得到,当搜索完整张 棋盘后,己方棋型表也就填写完毕了。
然后再用同样的方法填写对方棋型表。

注意:所有棋型的编号都要事先

定义好,越重要的号数越大!



对方下子



















Computer[15][15][4]

Player[15][15][4]
找出其中数值最大的一点,在该点下子即可。但这种算法的弱点< br>非常明显,
只顾眼前利益,
不能顾全大局,
这就和许多五子棋初学者一样犯了“ 目光
短浅”的毛病。

如果在这儿下子将会形成对手不得不防守的棋型
(例如 :
‘冲四’、
‘活三’)
;那么下一步对手就会照您的思路下子来防守您,如此一来便 完成了第一
步的预测。
这时再调用模块
4
对预测后的棋进行盘面分析,
如果出现了‘四三’、
‘双
三’或‘双四’等制胜点,
那么己方就可以获胜了
(当然对黑棋而言‘双三’、
‘双
四’是禁手,
另当别论)

否则 照同样的方法向下分析,
就可预测出第二步、
第三步……

等一等,要是盘面 上没有对手必须防的棋型,哪该怎么办呢进攻不成的话就得考虑防守了,
将自己和对手调换一下位置,然 后用上面的方法来预测对手的棋,这样既可以防住对手巧妙的攻

4

v1.0
可编辑可修改

击,又能待机发动反击,何乐而不为呢!


胜负判断

务须多言,
某方形成五子连即获胜;
若黑棋走 出‘双三’、
‘双四’或长连即以禁手
判负。


第二章

技术线路


技术线路模块图

五子棋游戏
判断< br>棋盘
是否
已满
判断
是否
出错
并提

判断
那方
获胜
交替
循环
双方
下棋



功能模块图




技术线路说明

该五子棋程序基本上实现了五子棋的游戏功能,有双方下棋的界面及最 终判定结果的界面。
同时该游戏采用二维坐标实现,
明了易懂,
方便玩家在游戏过程中 的基本操作,
使游戏更加简便。
在细节方面,该系统提供实时存储功能,随时记录为完成的游戏 ,使用户可以很好的处理意外中
断的情况。该游戏基本实现了游戏的一些要求和特征。在游戏的源程序及 文档方面,我们也严格
遵守软件工程思想,
立足实验要求,
确定任务,
需求分 析,
设计和编码,
每个步骤力求清晰易懂。
原代码注释详尽,各功能模块功能分明,可 移植性强。当然该系统也有很多不足的地方,第一次
进行独立的课程设计,也有很多细节方面是考虑到的 ,这款游戏也是在不断的调试和修改中产生
和完善的。希望老师能够指出不足,帮助我不断提高。



5

v1.0
可编辑可修改

第三章

系统设计


流程图

开始棋盘已满

输出平局


0
”方选位置
判断该 位置是否有棋

另找位置


0
”方落子

判断“
0
”方是否获


输出“
0

方 获胜

棋盘已满

输出平局
结束


x< br>”方选位置
判断该位置是否有棋

另找位置


x< br>”方落子
判断“
x
”方是否获


输出
“< br>x
”方
获胜



流程图


流程图说明

本程序定义了各种操作函数、各种状态判定宏,思想明确,思路清晰。各 个判断
选择了不同路径,因此继续进行或输出结果。程序中,
“循环”的利用非常直接和清晰,双方交替下棋,因此循环往复。最终决出胜负或最终平局。分析时,也考虑了许
多种情况,针对 各个情况均作出了相对措施和解决方案


程序采用循环进行双方交替下棋,
并进行了很多判断。
首先判断棋盘是否已满,
若棋盘已满,
则输出平局,结束游戏;若 棋盘未满,则继续进行。然后判断“
0
”方是否胜出,若“
0
”方获胜,则输出“
0
”方获胜,结束游戏;若“
0
”方没有获胜,则继续进行。再 判断“
x
”方是否获胜,
若“
x
”方获胜,则输出“
x”方获胜,结束游戏;若“
x
”方没有获胜,则继续进行。回到“首

6

大学生诚信调查报告-庙会走透透


大学生诚信调查报告-庙会走透透


大学生诚信调查报告-庙会走透透


大学生诚信调查报告-庙会走透透


大学生诚信调查报告-庙会走透透


大学生诚信调查报告-庙会走透透


大学生诚信调查报告-庙会走透透


大学生诚信调查报告-庙会走透透