5 10 15 20 基 于 J2ME 的 手 机 联 网 五 子 棋 游 戏 开 发 ** 吴 京 京, 张 申 ( 中 国 矿 业 大 学 信 息 与 电 气 工 程 学 院, 江 苏 徐 州 221008) 摘 要 : 为 了 实 现 联 网 五 子 棋 游 戏 在 手 机 用 户 中 的 使 用, 本 文 通 过 在 Eclips 平 台 下, 基 于 J2ME 技 术, 采 用 WTK(Wireless Tool Kit) 模 拟 器 对 其 进 行 了 开 发 文 章 重 点 介 绍 了 人 机 对 弈 时 人 工 智 能 和 蓝 牙 联 网 技 术 的 实 现 方 法, 并 详 细 介 绍 了 联 网 部 分 的 客 户 端 和 服 务 器 的 开 发 流 程 测 试 结 果 表 明 了 游 戏 具 有 良 好 的 鲁 棒 性 和 界 面 的 友 好 性 关 键 词 :J2ME;WTK(Wireless Tool Kit); 人 工 智 能 ; 蓝 牙 中 图 分 类 号 :TP31 Development of Cell Phone Game Based on J2ME WU Jingjing, ZHANG Shen (School of Information and Electric Engineering,China University of Mining and Technology, Xuzhou, Jiangsu 221008) Abstract: The paper introduces the J2ME technology and WTK simulator based on the integrated development environment of Eclipse. It is mainly about the implementation of a game Network Gobang, with the addition of GameAPI in MIDP2.0. The core of the thesis focuses on the realization of AI(artificial intelligence) and the Bluetooth technology which involves a computer algorithm for playing chess, development of both server and client sites of network Gobang. Key words: J2ME; Wireless Tool Kit; Artificial Intelligence; Bluetooth 0 引 言 25 30 近 几 年, 随 着 移 动 增 值 服 务 的 兴 起, 越 来 越 多 的 玩 家 开 始 使 用 手 机 进 行 棋 牌 游 戏 的 联 机 对 决 网 络 棋 牌 游 戏 具 有 竞 技 性 强 流 量 需 求 小 等 特 点, 非 常 适 合 在 手 机 中 运 行 [1] 本 文 将 在 手 机 上 实 现 单 机 版 和 蓝 牙 联 网 的 五 子 棋 游 戏, 即 可 实 现 玩 家 与 电 脑 的 对 弈 又 可 实 现 双 人 对 弈, 更 具 娱 乐 性 游 戏 双 方 持 不 同 颜 色 的 棋 子 一 方 持 黑 色, 另 一 方 持 白 色 棋 盘 会 按 照 屏 幕 的 宽 度 和 高 度 自 动 调 整, 但 最 大 不 超 过 15*15 游 戏 参 与 者 的 横 纵 斜 等 任 一 方 向 上 有 5 个 子 相 连, 系 统 则 判 该 方 为 获 胜 者 本 游 戏 利 用 人 工 智 能 技 术 实 现 了 电 脑 的 智 能 策 略, 同 时 通 过 蓝 牙 联 网 技 术 实 现 双 人 对 弈 1 系 统 需 求 分 析 1.1 各 功 能 模 块 的 分 析 设 计 35 本 次 游 戏 设 计 过 程 中, 主 要 从 玩 家 的 兴 趣 以 及 手 机 游 戏 的 本 身 特 点 来 进 行 设 计 和 研 究 联 网 五 子 棋 手 机 游 戏 主 要 包 括 如 下 图 所 示, 即 包 括 Midlet 框 架 (BTFiveMidlet) 控 制 中 心 (MainCanvas) 用 户 界 面 (MyUI) 功 能 按 钮 (MyButton) 棋 盘 及 棋 子 (Grids) 人 工 智 能 (Computer) 和 联 网 (Network) 等 七 个 模 块 作 者 简 介 : 吴 京 京 (1986-), 女, 研 究 生,CPS 在 洗 煤 厂 中 的 实 现 及 应 用 通 信 联 系 人 : 张 申 (1957-), 男, 教 授, 通 信 与 信 息 技 术, 矿 山 通 信 与 信 息 化. E-mail: darling19880624@sina.com - 1 -
功 能 按 钮 MyButton 联 网 Network 人 工 智 能 Computer 用 户 界 面 MyUI 控 制 中 心 MainCanvas 棋 盘 及 棋 子 Grids Midlet 框 架 BTFiveMidlet 40 图 1 各 功 能 框 图 Fig. 1 Each function diagram 1.1.1 五 子 棋 的 Midlet 框 架 (BTFiveMidlet) 45 MIDlet suite 是 MIDP 应 用 程 序 的 最 小 单 位,KVM 负 责 将 手 机 内 的 MIDlet suite 以 图 形 化 的 方 式 呈 现, 让 用 户 能 够 选 取 欲 执 行 的 MIDlet suite, 一 旦 选 取 了 某 个 MIDlet suite, 操 作 系 统 就 会 激 活 KVM 执 行 里 面 的 MIDlet,MIDlet 及 相 关 的 支 持 类 组 成 了 MIDP 应 用 程 序 的 实 际 内 容, 而 每 个 MIDlet 都 必 须 继 承 javax.microedition.midlet.midlet 这 个 抽 象 类 在 MIDP 规 范 中 定 义 了 MIDlet 的 生 命 周 期, 以 及 可 以 存 在 的 三 种 状 态, 包 括 Paused Active 以 及 Destroyed, 每 一 个 MIDlet 在 任 何 时 刻 只 可 能 处 于 其 中 的 一 个 状 态 [2] 这 三 种 状 态 的 转 换 关 系 如 下 图 所 示 : 50 图 2 MIDlet 流 程 图 Fig.2 MIDlet flow chart 由 于 本 游 戏 中 增 加 了 退 出 的 功 能 按 钮, 为 了 实 现 该 按 钮 的 实 际 功 能, 需 要 在 BTFiveMidlet 框 架 中 加 入 一 个 静 态 变 量, 以 使 其 他 类 通 过 调 用 该 变 量 来 退 出 整 个 应 用 程 序 55 1.1.2 控 制 中 心 模 块 (MainCanvas) 控 制 中 心 包 括 : 用 户 界 面 进 行 游 戏 游 戏 时 显 示 界 面 按 钮 联 网 游 戏 结 束 状 态 总 数 首 先, 创 建 用 户 界 面, 设 置 界 面 中 的 按 钮 添 加 菜 单 创 建 棋 盘 创 建 图 像 文 字 设 置 游 戏 状 态 进 入 用 户 界 面 显 示 标 题 界 面, 设 置 本 游 戏 的 按 钮 类 型 其 次, 分 配 新 线 程 1.1.3 用 户 界 面 模 块 (MyUI) 60 游 戏 的 开 始 结 束 以 及 动 态 信 息 画 面 共 同 构 成 一 个 完 美 游 戏 必 不 可 少 的 重 要 部 分, 良 好 的 用 户 界 面 更 是 吸 引 用 户 的 重 要 指 标 游 戏 中 为 了 达 到 美 观 和 适 应 性 强 的 目 标, 需 要 采 用 外 部 文 件 引 入 的 图 片 贴 图,MIDP2.0 中 提 供 了 用 于 增 强 游 戏 功 能 的 game 包 支 持 贴 图, 可 以 解 决 静 态 或 动 态 图 像 显 示 画 面 背 景 屏 幕 刷 新 的 双 缓 冲 等 都 有 较 好 的 解 决 方 案 [3] - 2 -
1.1.4 功 能 按 钮 模 块 (MyButton) 65 70 本 游 戏 与 按 钮 相 关 的 信 息 有 : 功 能 按 钮 分 开 始 帮 助 联 网 退 出 以 及 服 务 器 客 户 端 类 型 在 本 游 戏 中 进 入 开 始 界 面 后, 选 择 开 始 按 钮 进 入 游 戏 界 面, 可 进 行 单 机 游 戏 若 选 择 联 网 则 进 入 联 网 界 面, 进 入 后 选 服 务 器 可 以 建 立 游 戏, 等 待 其 他 玩 家 的 加 入 若 其 他 玩 家 已 经 建 立 游 戏, 则 选 择 客 户 端 可 以 搜 索 其 他 玩 家, 建 立 连 接 后 即 可 对 弈 选 帮 助 可 进 入 帮 助 界 面 查 看 游 戏 规 则 选 退 出 即 可 退 出 本 游 戏 程 序 在 游 戏 中 或 游 戏 结 束 的 时 候, 选 重 玩 可 退 出 当 前 游 戏, 进 入 开 始 界 面 重 新 选 择 当 功 能 按 钮 被 选 择 时, 以 高 亮 图 像 显 示, 否 则 以 灰 色 图 像 显 示 1.1.5 棋 盘 与 棋 子 模 块 (Grids) 75 80 85 90 95 下 棋 界 面 不 可 能 通 过 绘 图 来 解 决, 否 则, 不 仅 难 于 控 制 和 处 理 过 多 的 元 素, 也 会 因 过 多 的 大 型 图 片 而 无 法 控 制 程 序 的 大 小, 失 去 手 机 程 序 和 Java 的 优 势 在 程 序 设 计 中, 界 面 采 用 了 TiledLayer 类 实 现 TiledLayer 是 有 一 组 图 象 格 元 素 组 成 的 整 块 虚 拟 图 象 该 类 使 不 需 要 高 分 辨 率 的 图 象 就 能 创 建 大 幅 图 面 成 为 可 能, 这 项 技 术 通 常 应 用 在 2D 游 戏 平 台 的 滚 动 背 景 的 绘 图 这 个 类 实 现 思 想 是 将 一 块 整 图 可 被 分 割 成 相 同 大 小 的 图 象 格, 每 块 格 有 其 对 应 的 序 号, 按 照 行 列 递 增 1.1.6 人 工 智 能 模 块 (Computer) 游 戏 中 很 重 要 的 一 个 地 方 是 电 脑 人 工 智 能 (AI), 本 游 戏 建 立 Computer 类 来 实 现, 采 用 棋 谱 式 算 法 这 种 算 法 的 原 理 是 : 事 先 将 常 见 的 棋 盘 局 部 布 局 存 储 成 棋 谱, 然 后 在 走 棋 之 前 只 对 棋 盘 进 行 一 次 遍 历, 依 照 棋 谱 选 择 关 键 的 位 置 这 种 算 法 的 程 序 思 路 清 晰, 计 算 量 也 相 对 较 小, 而 且 只 要 棋 谱 足 够 多, 也 可 以 使 电 脑 的 棋 艺 达 到 一 定 的 高 度 [4] 1.1.7 联 网 模 块 (Network) 联 网 部 分 包 括 客 户 端 的 开 发 和 服 务 器 的 开 发, 具 体 如 下 : 客 户 端 的 开 发 : 蓝 牙 客 户 端 的 开 发 流 程 包 括 : 开 始 设 备 是 否 支 持 蓝 牙 搜 索 蓝 牙 设 备, 将 找 到 的 设 备 信 息 存 入 设 备 队 列 设 备 是 否 搜 索 完 毕 从 设 备 队 列 中 搜 索 指 定 的 服 务, 将 找 到 的 服 务 存 入 服 务 队 列 服 务 是 否 搜 索 完 毕 服 务 列 表 是 否 为 空 用 户 选 择 服 务 连 接 提 供 服 务 的 服 务 器 进 行 数 据 交 换 关 闭 连 接 服 务 器 端 的 开 发 : 编 写 服 务 器 程 序, 需 要 掌 握 进 程 与 线 程 的 知 识 进 程 就 是 指 一 个 正 在 执 行 的 程 序, 例 如 正 在 执 行 的 游 戏 程 序 一 个 进 程 通 常 会 包 含 多 个 线 程, 每 个 线 程 完 成 各 自 的 任 务, 而 且 这 些 线 程 同 时 工 作 例 如 J2ME 的 手 机 游 戏 就 至 少 需 要 两 个 线 程, 一 个 负 责 处 理 游 戏 功 能, 另 一 个 则 负 责 监 听 手 机 的 呼 叫 等 其 他 操 作 只 不 过 负 责 监 听 的 线 程 是 由 系 统 自 动 建 立 的, 当 监 听 到 手 机 呼 叫 等 操 作 时, 系 统 会 通 过 MIDLet 框 架 及 时 通 知 应 用 程 序 [5] 1.2 游 戏 流 程 图 游 戏 的 分 析 设 计 后 还 需 要 设 定 游 戏 的 操 作 流 程, 游 戏 的 操 作 应 当 充 分 考 虑 可 用 性 和 方 便 性 联 网 五 子 棋 游 戏 的 总 流 程 图 如 下 图 所 示 : - 3 -
创 建 Midlet 框 架 创 建 GameCanvas 框 架 类 将 GameCanvas 框 架 类 与 Midlet 框 架 关 联 创 建 MyButton 类, 管 理 功 能 按 钮 创 建 MyUI 类, 管 理 用 户 界 面 创 建 Computer 类, 管 理 人 工 智 能 创 建 Grids 类, 管 理 棋 盘 与 棋 子 创 建 Network 类, 管 理 联 网 部 分 100 图 3 联 网 五 子 棋 的 整 体 框 架 Fig. 3 Network Gobang whole frame chart (1) 人 工 智 能 (Computer) 部 分 流 程 如 下 图 所 示 : 定 义 数 组 存 储 棋 盘 A 其 他 操 作 No 轮 到 电 脑 下 棋? B Yes 对 照 棋 谱 遍 历 棋 盘 C 随 机 下 棋 No 存 在 与 棋 谱 中 相 同 布 局? Yes D 按 棋 谱 下 棋 105 图 4 人 工 智 能 的 流 程 图 Fig. 4 Artificial Intelligence flow chart (2) 联 网 对 弈 ( 蓝 牙 ) 服 务 器 端 的 程 序 流 程 如 下 图 所 示 : 110 图 5 联 网 对 弈 ( 蓝 牙 ) 服 务 器 端 的 程 序 流 程 图 Fig. 5 Network (Bluetooth) versus on the server side program flow chart - 4 -
(3) 联 网 对 弈 ( 蓝 牙 ) 的 客 户 端 程 序 流 程 如 下 图 所 示 : 115 图 6 联 网 对 弈 ( 蓝 牙 ) 的 客 户 端 程 序 流 程 图 Fig. 6 Network (Bluetooth) versus on the client side program flow chart 2 游 戏 测 试 120 EclipseME 插 件 提 供 了 直 接 将 程 序 打 包 成 JAR 的 方 法, 并 同 时 生 成 与 之 配 合 的 JAD [6] 文 件 在 WTK2.5.1 中 模 拟 器 下 载 测 试 调 出 两 个 模 拟 器, 都 点 击 联 网 进 入 联 网 界 面, 一 个 选 择 服 务 器, 另 一 个 选 择 客 户 端 选 择 服 务 器 后, 出 现 如 下 图 所 示 界 面, 点 击 是 后 等 待 客 户 连 接 125 图 7 等 待 客 户 连 接 Fig. 7 Waiting for client to connect 另 一 个 选 择 客 户 端 后, 查 找 网 络, 选 择 已 查 到 的 网 络 进 行 连 接 选 中 所 要 连 接 的 网 络 后, 出 现 如 下 图 所 示 界 面, 选 择 是 连 接 网 络 - 5 -
130 图 8 选 择 网 络 连 接 网 络 Fig. 8 Select the network, connect to it 进 入 联 网 游 戏 界 面, 实 现 双 人 对 弈 3 结 束 语 135 140 145 本 游 戏 的 特 色 主 要 有 以 下 几 点 : 在 游 戏 中, 通 过 棋 谱 式 算 法 实 现 了 电 脑 的 人 工 智 能 (AI) 这 种 算 法 的 程 序 思 路 清 晰, 计 算 量 也 相 对 较 小 而 且 只 要 棋 谱 足 够 多, 也 可 以 使 电 脑 的 棋 艺 达 到 一 定 的 高 度 这 样 游 戏 才 能 具 备 可 玩 性 本 游 戏 充 分 考 虑 了 玩 家 的 游 戏 心 理 既 可 以 实 现 单 机 版 的 五 子 棋, 又 可 以 通 过 蓝 牙 联 网 实 现 双 人 对 弈 让 玩 家 感 受 到 游 戏 的 挑 战 性 联 网 时 就 使 用 了 一 个 Network 类 同 时 实 现 了 客 户 端 与 服 务 器 的 开 发 采 用 软 件 重 用 技 术 省 略 了 二 者 之 间 部 分 相 同 的 代 码, 使 程 序 更 简 洁 本 游 戏 采 用 图 片 添 加 的 浮 动 功 能 按 钮, 美 观 活 泼, 容 易 吸 引 玩 家 随 着 游 戏 技 术 的 不 断 成 熟, 手 机 游 戏 的 公 共 性 方 面 可 能 成 为 它 最 大 的 吸 引 力 之 一 手 机 通 信 已 经 使 世 界 变 得 很 小, 而 手 机 游 戏 则 允 许 人 们 一 起 玩 游 戏 而 不 关 心 其 实 际 位 置, 从 而 使 这 种 情 况 达 到 一 个 新 的 水 平 手 机 游 戏 不 但 能 够 克 服 地 理 位 置 的 障 碍, 而 且 能 够 突 破 语 言 和 文 化 的 障 碍 因 此, 开 发 手 机 游 戏 是 非 常 有 必 要 的 [ 参 考 文 献 ] (References) 150 155 [1] 郎 锐, 孙 方. J2ME 手 机 程 序 Eclipse 开 发 基 础 [M]. 北 京 : 机 械 工 业 出 版 社,2006. [2] 张 鹏. 手 机 游 戏 50 例 [M]. 北 京 : 海 洋 出 版 社,2007. [3] 施 铮. J2ME 无 线 移 动 游 戏 开 发 [M]. 北 京 : 人 民 邮 电 出 版 社,2006. [4] ( 美 ) 方 约 翰. 游 戏 人 工 智 能 [M]. 北 京 : 北 京 邮 电 大 学 出 版 社,2007. [5] 荣 钦 科 技. J2ME 手 机 游 戏 设 计 技 术 与 实 战 [M]. 北 京 : 电 子 工 业 出 版 社,2007. [6] ( 美 )Michael Morrison. J2ME 手 机 游 戏 编 程 入 门 [M]. 北 京 : 人 民 邮 电 出 版 社,2005. - 6 -