- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
五子棋文档
五子棋游戏设计与实现
——051221134 翟晓华
目录
五子棋游戏设计与实现 1
——051221134 翟晓华 1
一. 问题定义: 2
二.模块设计2
2.1 整理描述2
2.2 功能描述3
2.2.1 棋子类3
2.2.2 棋盘类3
2.2.3 规则分析类4
2.2.4 游戏类6
三.算法描述7
3.1AI 算法设计7
3.2 输赢判断算法设计 10
3.3 禁手判断算法设计 11
四.程序说明 12
五.使用说明 12
一.问题定义:
.能按照五子棋的规则(规则附文后)进行人机对战,并能顺利结束棋局。
机器思考步骤最好不要超过30秒。
考虑先手禁手的规则:
黑方不能以双活3 或双4 取胜,其中活3 有连3 和跳3,4 有活4 和冲4;一旦出现禁手,对
方指出,则判负;若同时出现禁手和成5,则先5 为胜.
二.模块设计
2.1 整理描述
本游戏设计有三个模块:人机交互界面、规则分析部分、棋盘棋子部分。程序整体结构及
模块之间的联系如下图所示:
调用棋盘棋子模块新建棋盘对象
用户根据自己需求 调用人机交互模块选择等级
以及白棋或黑棋
根据用户选择,获取机器先或玩家先以及游戏
难度,将结果传给规则分析模块
开始游戏
用户或者计算机走步,如果轮到计算机走步,
调用规则分析模块根据当前棋局给出一个计算
机走步位置。否则通过人机交互模块获得玩家
输入的位置
调用规则分析模块,首先判断当前这步是否是
黑子,是则继续调用规则分析模块判断是否是
禁手,若是则提示结束游戏,用户可重新开局
判断当前是否有一方已经构成五子,若是,则
提示该方胜利,结束游戏。若不是则等待另一
方走步
2.2 功能描述
2.2.1 棋子类
Chess 类:
属性:棋子位置,颜色
提供的主要方法:
a) public void initial(int x, int y):用于初始化棋子;
2.2.2 棋盘类
chessBoard 类:
属性:
a) private int arraySize; //棋盘大小
b) public chess[] steps; //记录下每一步走过的棋
c) public int current; //指向steps 数组中当前走
的棋,通过修改它来实现悔棋
d) public int[][] board; //棋盘大小,用二维数组表示,0
表无棋,1 表黑棋,2 表白棋
提供的主要方法:
a) public void initial():用于初始化棋盘;
b) public int putDown( chess aChess ):
/**
文档评论(0)