logo资料库

爱恩斯坦棋开发手册.pdf

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
EWNJavaSystem 开发手册 安徽大学计算机博弈实验室 2019 年 3 月
目录 1 爱恩斯坦棋介绍 .................................................................................................................................... 1 2 环境配置与系统运行 ........................................................................................................................... 3 2.1 硬件环境 .......................................................................................................................................... 3 2.2 软件环境 .......................................................................................................................................... 3 2.3 项目导入 .......................................................................................................................................... 3 2.4 系统运行 .......................................................................................................................................... 4 3 系统使用说明 ......................................................................................................................................... 5 3.1 棋盘显示面板 ................................................................................................................................. 5 3.2 游戏控制面板 ................................................................................................................................. 6 3.3 数据显示面板 ................................................................................................................................. 6 3.4 棋谱面板 .......................................................................................................................................... 6 3.5 策略配置面板 ................................................................................................................................. 6 3.6 自动对弈面板 ................................................................................................................................. 8 3.7 对弈操作过程 ................................................................................................................................. 8 4 系统设计与开发 .................................................................................................................................. 10 4.1 棋盘表示 ........................................................................................................................................ 10 4.2 走法表示 ........................................................................................................................................ 10 4.3 估值函数接口 ............................................................................................................................... 11 4.4 走子策略接口 ............................................................................................................................... 12 4.5 代码结构说明 ............................................................................................................................... 12 4.6 API 文档说明 ................................................................................................................................. 14 4.7 策略测试示例 ............................................................................................................................... 14
1 爱恩斯坦棋介绍 爱恩斯坦棋,德语为 EinStein Würfelt Nicht!,简称 EWN,是德国的教授 Ingo Althöfer 为纪念爱因斯坦相对论诞生 100 周年而发明的游戏,于 2005 年德国爱 因斯坦年官方展览。爱恩斯坦棋的德语直译为“爱因斯坦不投骰子!”,它的发明 来源于爱因斯坦说过的一句话:“我相信上帝不玩骰子”。 爱恩斯坦棋的棋盘由5 × 5大小的正方形棋位组成,且对弈方分别标记为红 方和蓝方,红蓝双方分别有标记为 1~6 号数字的棋子。双方走子前需要对棋盘布 局,布局位置如图 1.1(a)所示,红方的棋子可在棋盘左上角的六个棋位随意放置, 蓝方的棋子在右下角的六个棋位随意放置。 (a) 初始布局 (b) 合法移动方向 (c) 到达角部位置 (d) 吃掉全部棋子 图 1.1 爱恩斯坦棋规则 完成棋盘布局后,双方轮流行棋,先行方即可以是红方也可以是蓝方。行棋 分为两个步骤:投骰子和走动棋子。 首先,行棋方投掷骰子,根据骰子点数来确定本次行棋可走动的棋子。如果 棋盘上存在编号与骰子点数相同的棋子,则只能走动该棋子,否则可在大于或小 于骰子点数并且接近该点数的棋子中选择一个走动。例如在图 1.1(b)中,假设投 掷到的骰子点数为 3,蓝方只能走动蓝 3 棋子,红方可走动红 2 和红 6 中的任意 一个棋子。 其次,行棋方走动指定的棋子。允许的移动方向如图 1.1(b)所示,红方棋子 可向右方、下方、右下方走动,蓝方棋子可向左方、上方、左上方走动。每次行 棋只能走动一格棋位,且不允许跳格。如果目标棋位上存在棋子,则该棋子被移 出棋盘(即该棋子被吃掉),既可吃己方棋子也可吃对方棋子。 对弈获胜的方式有两条,满足任意一条即可获胜:第一,己方的棋子率先走 1 红6红2红4红1红5红3蓝6蓝2蓝4蓝1蓝3蓝5红6红1红2蓝3蓝4红6红1红2蓝3蓝4蓝4蓝2红1
动到对方角部棋位,如图 1.1(c)所示,蓝 3 走动到左上方顶点位置后获胜;第二, 己方率先吃掉对方全部棋子,如图 1.1(d)所示,蓝 2 吃掉红 1 后获胜。 中国大学生计算机博弈大赛对比赛时间和先后手进行了限制。甲乙双方共对 阵 7 局,第 1、4、5 局甲方先手,第 2、3、6、7 局乙方先手,先胜 4 局者为胜 (此为国赛规则,并非校赛规则)。每局每方限时 4 分钟,超时判负。 2
2 环境配置与系统运行 2.1 硬件环境 EWNJavaSyetem 可在个人电脑上进行开发,其硬件配置需求如表 2.1 所示。 硬件需求 CPU 内存大小 硬盘大小 表 2.1 硬件运行环境 推荐配置 Intel® Core™ i3 及以上 CPU 4GB 及以上 10GB 以上 显示器分辨率 建议 1920*1080 2.2 软件环境 操作系统:Microsoft Windows 10、8、7 64 位 编程语言:Java8 开发环境:Apache Maven 3.6.0 开发工具(IDE):Eclipse Photon Release (4.8.0) 2.3 项目导入 打开 Eclipse IDE 编程工具,点击工具栏中的“文件”→“导入”按钮,会弹 出“导入”窗口。在该窗口中选择“Maven”→“Existing Maven Projects”选项 (最新的 Eclipse 默认安装了 Apache Maven 工具,如果没有“Maven”选项,则 需要手动安装 Maven 或下载最新版 Eclipse),并单击“下一步”,此时会弹出 “Import Maven Projects”窗口,如图 2.1 所示。之后,单击“Browse…”按钮, 选择“EWNJavaSystem”文件夹,并点击“完成”按钮即可导入项目。导入后的 项目文件可在“包资源管理器”中查看,如图 2.2 所示。 3
图 2.1 Maven 项目导入 图 2.2 项目文件 2.4 系统运行 本系统的执行入口位于 ahu.ewn 包的 App 类,运行 App 类后即可显示系统 界面,如图 2.3 所示。 图 2.3 EWNJavaSystem 主界面 4
3 系统使用说明 如图 3.1 所示,系统界面分为六个功能面板:棋盘显示面板、游戏控制面板、 数据显示面板、棋谱面板、策略配置面板和自动对弈面板。 图 3.1 功能面板分布 3.1 棋盘显示面板 棋盘显示面板负责棋盘的显示和玩家下棋功能。由于爱恩斯坦棋分为布局和 行棋两个阶段,游戏开始后,该面板会显示初始的棋盘布局情况,布局结束后显 示当前的对弈棋盘。 如果用户在游戏控制面板中设置了“玩家布局”或“玩家走子”,那么用户 可以通过拖动棋子实现布局或走子。在“玩家布局”中,用户可以通过鼠标“拖 动”一方的所有棋子,并且被拖动的棋子可以覆盖目标位置上的棋子,以实现恢 复残局功能(如果对弈中途系统意外崩溃,可以恢复棋局)。在“玩家走子”中, 用户只能拖动符合规则的棋子,并且棋子只能拖动到符合规则的棋位上。例如在 图 3.1 中,如果蓝方的骰子点数为 2,那么用户只能拖动蓝 2 棋子到左、上、左 上方三个棋位上,蓝 4 和蓝 5 无法拖动。 5 棋盘显示游戏控制棋谱数据显示策略配置自动对弈
3.2 游戏控制面板 游戏控制面板负责控制对弈的进程,设置红蓝方“玩家、电脑”走子,以及 骰子点数。 该面板右排第一个按钮为开始/重置按钮。游戏未开始时显示“布局”字样, 点击按钮后进入布局阶段,按钮显示“确认”字样,此时可以进行布局。布局完 成后点击“确认”进入行棋阶段,按钮显示“重置”字样。点击“重置”时直接 结束当前游戏,开始新游戏的布局阶段。第二个按钮为投骰子按钮,点击后可以 随机生成一个骰子点数。第三个按钮为下棋按钮,如果是“电脑下棋”,则点击 下棋按钮后系统就会根据指定的策略行棋,如果是“玩家下棋”,用户可以拖动 符合规则的棋子,确认无误后点击下棋按钮即可行棋。第四个按钮为悔棋按钮, 点击一次悔一步棋,直至悔至初始布局棋盘。 游戏控制面板的左上方包含红蓝双方的人/机布局和人/机走子按钮组,用于 切换人-人、人-机、机-机对弈。左下方包含骰子点数按钮组,可以直接指定一个 骰子点数。 3.3 数据显示面板 该面板用于显示对弈的数据,能显示红蓝双方的走子策略数据(执行时间、 估值、搜索深度、迭代次数,详见 MoveStrategy 类的 API 文档)、比赛信息(时 间、地点、名称)、先手方和行棋方。 3.4 棋谱面板 棋谱面板用于显示和保存棋谱,即对弈过程,棋谱格式参考 2018 国赛棋谱 标准(http://computergames.caai.cn/info/news180708.html)。棋谱中的比赛时间由 系统自动设置,比赛地点和名称在数据显示面板中手动输入。 3.5 策略配置面板 策略配置面板用于配置红蓝双方的队名、布局策略和走子策略。 6
分享到:
收藏