为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

人机大战黑白棋相关资料说明

2018-02-05 7页 doc 40KB 15阅读

用户头像

is_624976

暂无简介

举报
人机大战黑白棋相关资料说明人机大战黑白棋相关资料说明 “人机大战黑白棋”相关资料说明 黑白棋(Reversi、Othello),也叫苹果棋,翻转棋,是一个经典的策略性游戏,相信一些人并不陌生。“人机大战黑白棋”在棋盘格式、走法、胜负判断上与传统的黑白棋游戏没有区别,只是增加的几种不同的开局方式,以求增加一些变化及趣味性。由于编程水平有限,对黑白棋又不是很了解,做出来的东西自己都不很满意,无奈时间所胜不多,只能用它来充数了。 “人机大战黑白棋”支持双人游戏与人机对战,共有十种不同的开局方式供大家选择,其中第一种是传统的黑白棋开局。人机对战中电脑棋手走...
人机大战黑白棋相关资料说明
人机大战黑白棋相关资料说明 “人机大战黑白棋”相关资料说明 黑白棋(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)子程序:走出一步 备注:走一步棋,用于搜索引擎 参数:走棋方法 数据类型:一步走法 <参考> 备注:一步走棋方法
/
本文档为【人机大战黑白棋相关资料说明】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索