分享
程序编制相关资料说明.doc
下载文档

ID:3410722

大小:42.50KB

页数:4页

格式:DOC

时间:2024-04-28

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
程序 编制 相关 资料 说明
“人机大战黑白棋”相关资料说明 黑白棋(Reversi、Othello),也叫苹果棋,翻转棋,是一个经典的策略性游戏,相信一些人并不陌生。“人机大战黑白棋”在棋盘格式、走法、胜负判断上与传统的黑白棋游戏没有区别,只是增加的几种不同的开局方式,以求增加一些变化及趣味性。由于编程水平有限,对黑白棋又不是很了解,做出来的东西自己都不很满意,无奈时间所胜不多,只能用它来充数了。 “人机大战黑白棋”支持双人游戏与人机对战,共有十种不同的开局方式供大家选择,其中第一种是传统的黑白棋开局。人机对战中电脑棋手走棋采取用历史启发增强的负极大值搜索引擎,前50来步棋采取一般性搜索,后10来步棋采用终局搜索,也就是一直搜索到棋局的最后一步。一般搜索最大层数设为7层(与一些优秀软件十几层的搜索相差很远),终局搜索最大层数设为11层。下面是一些变量和子程序说明: 1、定义数量类型: --------------------------------------------------------------------- 自定义数据类型:棋子点 备注:棋子坐标 成员:横坐标 数据类型:短整数型 成员:纵坐标 数据类型:短整数型 --------------------------------------------------------------------- 自定义数据类型:一步走法 备注:一步走法的信息 成员:落子点 数据类型:棋子点 成员:棋子类型 数据类型:短整数型 成员:被吃棋子个数 数据类型:短整数型 成员:被吃棋子点 数据类型:棋子点 数组:30 成员:历史得分 数据类型:整数型 2、全局变量: (1)全局变量:棋局 数据类型:短整数型 数组:8,8 备注:存储当前棋局:1.黑子,2.白子,0.无子 (2)全局变量:走法库 数据类型:一步走法 数组:16,30 备注:用于存储搜索引擎产生所有走法 (3)全局变量:玩家全部走法 数据类型:一步走法 数组:2,30 备注:用于存储玩家所有可能的走法 (3)全局变量:玩家全部走法数量 数据类型:短整数型 数组:2 备注:存储玩家所有走法的数量 (4)全局变量:是否正在进行游戏 数据类型:短整数型 备注:是否正确进行游戏:0.未进行,1.正在进行,2.游戏暂停 (5)全局变量:游戏类型 数据类型:短整数型 备注:当前进行的游戏类型:1.双人游戏,2.人机对战 (6)全局变量:是否玩家先走 数据类型:短整数型 备注:玩家是否先走棋:1.玩家先走,2.电脑先走(仅在人机对战中有效) (7)全局变量:该谁下 数据类型:短整数型 备注:目前该哪一方走棋:1.黑棋,2.白棋 (8)全局变量:开局库 数据类型:文本型 数组:10 备注:存储开局信息 (9)全局变量:开局库号 数据类型:短整数型 备注:当前开局库的编号 (10)全局变量:白棋子数 数据类型:短整数型 备注:白棋已下的子数 (11)全局变量:黑棋子数 数据类型:短整数型 备注:黑棋已下的子数 (12)全局变量:历史得分表 数据类型:整数型 数组:8,8 备注:用于历史启发提高搜索速度,存储历史得分 (13)全局变量:搜索深度 数据类型:短整数型 备注:搜索的深度 (14)全局变量:终局搜索步数 数据类型:短整数型 备注:当还剩下多少步时进入终局搜索 (15)全局变量:先手 数据类型:短整数型 备注:谁先下:2.人,1.计算机 (16)全局变量:最佳走法 数据类型:一步走法 备注:搜索出的一步走法 (17)全局变量:黑棋用时 数据类型:长整数型 备注:黑棋用时秒数 (18)全局变量:白棋用时 数据类型:长整数型 备注:白棋用时秒数 (19)全局变量:落子记录 数据类型:一步走法 数组:64 备注:存储全部走棋记录 (20)全局变量:战况 数据类型:整数型 数组:2,3 备注:存储本次游戏的胜负信息 3、子程序说明: (1)子程序:产生玩家所有走法 返回值类型:短整数型 备注:产生所有可能的走法,返回走法数量,用于玩家下子 参数:棋子类型 数据类型:短整数型 备注:将要下的棋子类型 (2)子程序:初始化 备注:开始新游戏,初始化棋局 参数:当前关卡 数据类型:短整数型 备注:当前关卡 (3)子程序:创建所有走法 返回值类型:短整数型 备注:创建所有走法,返回走法数量,用于搜索引擎 参数:深度 数据类型:短整数型 备注:深度 参数:棋子类型 数据类型:短整数型 备注:棋子类型 (4)子程序:创建一步走法 返回值类型:逻辑型 备注:创建一个点位的走法,不能下子返回假 参数:落子位置 数据类型:棋子点 <参考> 备注:将要下子的位置 参数:落子类型 数据类型:短整数型 备注:将要走的棋子类型 参数:走法 数据类型:一步走法 <参考> 备注:保存走法的变量 (5)子程序:负极大值搜索 返回值类型:整数型 备注:历史启发增强的负极大值搜索 参数:深度 数据类型:短整数型 备注:搜索深度 参数:棋子类型 数据类型:短整数型 备注:棋子类型 参数:下界 数据类型:整数型 备注:搜索下界 参数:上界 数据类型:整数型 备注:搜索上界 参数:无棋可走 数据类型:逻辑型 备注:对方是否已无棋可走 (6)子程序:复制走法 备注:复制一步法走 参数:源走法 数据类型:一步走法 备注:要复制的走法 参数:目标走法 数据类型:一步走法 备注:目标走法 目标走法.落子点.横坐标 = 源走法.落子点.横坐标 目标走法.落子点.纵坐标 = 源走法.落子点.纵坐标 目标走法.棋子类型 = 源走法.棋子类型 目标走法.历史得分 = 源走法.历史得分 目标走法.被吃棋子个数 = 源走法.被吃棋子个数 复制数组 (目标走法.被吃棋子点, 源走法.被吃棋子点) (7)子程序:估值函数 返回值类型:整数型 备注:评估一个棋局的分值 参数:棋子类型 数据类型:短整数型 备注:模子类型 (8)子程序:历史得分排序 备注:将所有走法按历史得分从大到小排序 参数:走法数 数据类型:短整数型 备注:所有走法的数量 参数:深度 数据类型:短整数型 备注:搜索深度 (9)子程序:落子 返回值类型:逻辑型 备注:下子,在棋盘上走出一步棋 参数:落子位置 数据类型:棋子点 备注:下棋子的位置 (10)子程序:能否下子 返回值类型:逻辑型 备注:判断一个点位能否下子,能下子返回真,不能下子返回假 参数:落子位置 数据类型:棋子点 <参考> 备注:将要下子的位置 参数:落子类型 数据类型:短整数型 备注:将要走的棋子类型 (11)子程序:退回一步 备注:退回一步棋,用于搜索引擎 参数:走棋方法 数据类型:一步走法 <参考> 备注:一步走棋方法 (12) 子程序:显示可走棋位置 备注:显示所有可走棋的位置 参数:棋子类型 数据类型:短整数型 备注:将要走的棋子类型 参数:走法数量 数据类型:短整数型 备注:所有走法数量 (13)子程序:终局搜索 返回值类型:整数型 备注:当达到终局搜索步数时搜索到当前棋局的最后一步 参数:深度 数据类型:短整数型 备注:搜索深度 参数:棋子类型 数据类型:短整数型 备注:棋子类型 参数:下界 数据类型:整数型 备注:搜索下界 参数:上界 数据类型:整数型 备注:搜索上界 参数:无棋可走 数据类型:逻辑型 备注:对方是否已无棋可走 (14)子程序:走出一步 备注:走一步棋,用于搜索引擎 参数:走棋方法 数据类型:一步走法 <参考> 备注:一步走棋方法

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开