1、.134.3 胜负判断条件 .134.4 网络对战 .154.5 电脑 AI.17结 论 .21参考文献 .21致 谢 .22声 明 .23第 1 页 共 23 页1 引言1.1 课题背景五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为连珠,英译为 Renju,英文称之为 Gobang 或 FIR(Five in a Row 的缩写),亦有连五子、五子连、串珠、五目、五目碰、五格等多种称谓。五子棋起源于古代中国,发展于日本,风靡于欧洲。对于它与围棋的关系有两种说法,一说早于围棋,早在 “ 尧造围棋 ” 之前,民间就已有五子棋游戏;一说源于围棋,是围棋发展的一个分支。在中国的文化里
2、,倍受人们的青睐。本世纪初五子棋传入欧洲并迅速风靡全欧。通过一系列的变化,使五子棋这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。Java 语言是当今最为流行的程序设计语言之一 作为一门非常优秀和极为健壮的编程语言,它同时具有的面向对象,与平台无关,分布式应用,安全,稳定和多线程等优良的特征,使用 Java 语言,不仅可以开发出功能强大的大型应用程序,而且 Java 语言本身突出的跨平台的特性也使得它特别适合于Internet 上的应用开发,可以这样说,Java 的出现使得所开发的应用程序“一次编写,处处可用”的实现成为了可能。 1.2 本课题研究的意义
3、近来随着计算机的快速发展,各种各样的电脑游戏层出不穷,使得我们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。其中战胜过国际象棋世界冠军-卡斯帕罗夫的“深蓝”便是最具说服力的代表;其它像围棋的“手淡” 、象棋的“将族”等也以其优秀的人工智能深受棋迷喜爱。 越来越多的具有智能的机器进入了人类的生活,人工智能的重要性如今显而易见。自己对人工智能比较感兴趣,而五子棋游戏程序的开发实现这个课题,正好提供给我这样一个研究的机会,通过对人工智能中博弈方面的研究(人机对弈) ,让我在简单的人机对弈全局设计,以及具体到相关算法上有了深入的了解。人
4、工智能属于计算机科学的领域,它以计算机技术为基础,近几十年来,它的理论和技术已经日益成熟,应用领域也正在不断扩大,显示出强大的生命力。人工智能大致可以分成几个学科,它们每一个都是独特的,但是它们常常又互相结合起来完成设计任务,这时,这些学科之间的差别就变的很模糊。人工智能在专家系统,自然语言理解,自动定理证明,自动程序设计,人工智能在机器人学、模式识别、物景分析、数据库的智能检索、机器下棋(实质上是博弈论问题)和家用电器智能化等领域都有广泛的应用。而这个课题就是和人第 2 页 共 23 页工智能中的博弈论领域紧密相关的。这个题目核心是人工智能和 Socekt 编程, 。并且人工智能中的博弈部分
5、,由于采用了大量的搜索算法,其中很多被利用到各方面。它的概念、方法和技术,正在各行各业广泛渗透。智能已经成为当今各种新产品、新装备的发展方向。所以,趁着这个机会,对人工智能中比较容易实现的人机博弈进行了解研究学习,也是很实用且很有必要的。1.3 本课题的研究方法在进行游戏设计之前,首先决定的第一个问题就是,使用什么开发环境来编写环境? 自己虽然比较熟悉 Java 语言,但是实际开发项目经验很少,所以决定用 Jcreator,其拥有高亮语法编辑、使用向导以及完全定制的用户界面,最主要的是能够自动查找文件于 Main 方法或 Html 文件以支持 Java 小应用程序,然后启动相应的工具。其次确定
6、整个程序的结构框架。由于 Applet 运行速度较慢,如果在加上算法搜索时间,显然不符合程序的设计要求,决定用 Java 应用程序开发.整个程序的功能实现流程是这样的:网络对战涉及算法较少,所以先实现网络部分,实现基本的棋盘和棋子的类,添加判断胜负条件,这部是基础,也是很重要的,电脑 AI 也在这些基础上添加上来的。这个题目的 2 个功能包括 2 个重要算法,电脑 AI 和胜负条件,胜负条件运算量不大,有固定的模式。难点是人工智能,可以这样说,人工智能的好坏决定了这个题目的完成深度。所以,大部份时间花在 AI 算法的研究和改进上,对于算法我掌握的不多,研究了一些国内的五子棋算法,参考了一些游戏
7、设计算法,详细比较各种算法的优缺点,而且参考了现代五子棋比赛的各种规则和技巧,尽量联系实际,努力提高电脑 AI。2 课题相关基础2.1 五子棋2.1.1 棋盘和棋子现 代 五 子 棋 棋 盘 , 经 过 国 际 棋 联 的 多 次 修 改 , 最 终 定 为 15 X 15 路 , 即棋 盘 由 横 竖 各 15 条 平 行 线 交 叉 组 成 , 共 有 225 个 交 叉 点 ; 棋 盘 上 共 有 五 个 星位 , 中 间 的 星 位 称 为 天 元 , 周 围 四 点 为 小 星 , 与 围 棋 盘 略 有 不 同 。 见 图 1。第 3 页 共 23 页图 1 棋盘五 子 棋 的 棋
8、 子 和 围 棋 相 同 , 分 黑 白 2 种 颜 色 , 通 常 为 散 圆 形 , 有 一 面 凸起 或 二 面 凸 起 等 形 状 , 一 副 棋 子 总 数 为 225 枚 , 其 中 黑 子 113 枚 , 白 子 112枚 。关 于 计 时 , 正 规 比 赛 按 不 同 级 别 设 置 了 不 同 的 时 间 限 制 , 一 般 的 玩 家 都没 有 这 个 限 制 。2.1.2 规则及解释1:黑棋先行,白棋随后。从天元开始相互顺序落子。2:最先在棋盘的横向、竖向、斜向形成连续的相同色五个棋子的一方为胜利。3:黑棋禁手判负、白棋无禁手。黑棋禁手包括“三、三” ;“四、四” ;“
9、长连” 。黑方只能用“四、三”去取胜。4:如分不出胜负,则定位平局。5:对局中拔子、中途退场均判为负6:五连与禁手同时形成,先五为胜。7:黑方禁手形成时,白方应立即指出。若白方未发现或发现后不立即指正,反而继续落子,则不能判黑方负。 五子棋是由两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由第 4 页 共 23 页执黑棋的一方将一枚棋子的落在“天元”上,然后由执白棋的一方在黑棋周围的交叉点上落子。如此轮流落子直到某一方首先在棋盘的直线 横线或斜线上形成连续的五子或五子以上,则该方就算获胜。但是五子棋的特点是先行的一方优势很大。因此,在职业比赛种对黑方做了种种限制,以利公平竞争。黑白双方的
10、胜负结果必须按照职业五子棋的规则要求来决定。2.1.3 五子棋常用术语 二:二是五子棋的一切进攻的基础;又分为活二和死二。活二:即再下一子可形成活三的二,见图 2。死二:即再下一子可形成死三的二,见图 3。图 2 活二 图 3 死二三:三是五子棋最常见的攻击手段。三分为活三、死三、眠三。活三:为再下一子即可变成活四的三(活四介绍见后)。或三分为连三、跳三。见图 4。我们通常所说的“三”。就是指活三而言。如果是死三,将特别指出。死三:即对方有棋子在同一条线相邻交叉点防守的三;死三分为三种。见图 5。 眠三:是死三的一种特性,它看上去相邻点没有对方棋子防守,很像活三,但由于受空间限制,不论如何发展
11、都不可能称为活四,故称为“眠三“。见图5。第 5 页 共 23 页图 4 活三 图 5 死三反三:反三不是指一种“三”的形状,而是指再阻止对方进攻的同时使自己称为一道活三的反攻,称为反三。四:四的形状有三种,它分为:活四,冲四、跳冲四。活四:在同一条线上相连的四个同色棋子成为“连五”,如图 6 所示。冲四:在同一条线上相连的相同颜色的四个棋子,它与活四不同的是,其中的一端有对方的棋子进行阻挡,它只有再在另一端下一手棋才可形成“连五”。 跳冲四:它的形状在“四”中是比较特殊的,一般分为两种,它的特点是同一条线上的同色的四个棋子,有一个或两个棋子与另外三个或两个棋子之间有一个交叉点的间隔,它的下一
12、手棋只有下在间隔的交叉点上才能形成“连五”,因此,对方的棋子防守时,也只能阻挡在间隔的交叉点上,见图 7。图 6 活四第 6 页 共 23 页图 7 跳冲四 图 8 反冲四如图 8,黑棋在 1 点进攻,形成一子双杀,这时白棋的妙手是在 a 位活三,它同时阻挡了黑棋的两种取胜方法。当黑棋仍在 c 位跳冲四活三时,白棋即在b 位阻断黑棋冲四并形成反冲四,是黑棋的进攻功亏一篑。一子双杀:指用同一手棋同时形成两个胜点的着法。 追 下 取 胜 : 是 指 白 棋 逼 迫 黑 棋 形 成 禁 手 而 取 胜 的 方 法 。自由获胜:除了追下取胜以外的获胜方法,称之为自由取胜。禁手(Forbidden):指
13、黑方一子落下同时形成两个或两个以上的活三、冲四或形成长连的棋形,是对局中对黑棋禁止使用的战术或被判为负的行棋手段,见图 15。白棋无禁手,如果黑子在落下的关键的第五子即形成五连的同时,又形成禁手。此时,因黑方已成连五,故禁手失效,黑方胜利。之所以这么规定也是为了规范比赛,其实我们业余的棋手,黑白棋子谁先下都不限制,只是先落子会有比较大的优势,另一方始终处于防守的被动状态。所以那一方先下子,他就有禁手,这是为了保持公平的一种手段。但是职业连珠五子棋虽然对黑棋采取了种限制,但是先行的一方优势依然很大。在高段位的比赛中还添加了一些规定,由于很少用到,就不必详细叙述了。A B C D第 7 页 共 2
14、3 页E F 图 9 禁手见图 9。A、B、C 中的 x 点为三、三禁手。D、E 中的 X 点为四、四禁手。F 中的 X 点为长连禁手。长连:相同颜色的连续六子或六子以上。 2.1.4 五子棋攻防五 子 棋 是 一 项 对 抗 性 很 强 的 运 动 , 在 开 局 进 入 五 手 两 打 后 , 就 开 始 进 入了 白 刃 战 , 相 互 争 夺 先 手 , 任 何 一 方 都 不 能 掉 以 轻 心 , 要 尽 可 能 少 犯 错 误 ,甚 至 不 犯 错 误 , 否 则 将 会 导 致 速 败 。众 所 周 知 , 连 珠 五 子 , 连 五 为 胜 。 有 四 才 能 有 五 , 有
15、 三 才 有 四 , 以 此 类推 。 所 以 , 在 五 子 棋 的 对 局 众 进 攻 和 防 守 都 是 从 “二 ”和 “三 ”的 争 夺 开 始的 。 “好 的 开 始 是 成 功 的 一 半 ”, 这 条 格 言 用 在 五 子 棋 里 再 合 适 不 过 了 。五 子 棋 的 点 的 选 择 十 分 关 键 。 五 子 棋 实 际 上 是 通 过 选 择 最 佳 的 落 点 , 加上 正 确 的 落 子 次 序 , 一 步 一 步 地 占 领 各 个 要 点 , 最 终 获 得 胜 利 。对 局 的 早 期 , 选 点 的 着 眼 点 主 要 是 使 本 方 的 棋 子 保 持
16、联 系 , 为 以 后 创 造尽 可 能 多 的 成 三 、 成 四 的 机 会 , 同 时 尽 量 限 制 对 方 成 为 好 形 。 由 于 在 五 子 棋对 弈 过 程 中 , 通 过 行 棋 落 点 来 控 制 对 方 的 落 点 是 可 能 的 , 比 如 活 三 冲 四 的应 点 是 可 以 预 知 的 , 完 全 有 可 能 通 过 不 断 走 出 这 样 的 先 手 来 控 制 对 方 的 着 点直 至 胜 利 。 所 以 , 在 对 局 的 后 期 , 就 要 在 精 确 计 算 的 前 提 下 , 尽 早 发 动 攻 势 ,以 取 得 棋 局 的 控 制 权 , 否 则 一
17、 旦 贻 误 战 机 , 被 对 方 抢 先 发 动 攻 势 , 就 会 成 为被 控 制 的 一 方 。当 有 多 个 攻 击 点 可 供 选 择 时 , 要 选 择 后 续 手 段 多 , 又 不 会 被 对 方 反 先 的着 点 。 如 果 是 黑 方 , 还 特 别 要 注 意 进 攻 终 被 对 方 反 击 时 出 现 的 各 种 禁 手 点 的可 能 性 。 进攻分为单攻棋和双攻棋,单攻棋指单线即单行或单向的攻棋子,包括三子攻棋(活三、填四)和四子攻棋(冲四、填五)。而双攻棋指双向或双行的总收入等。具体分析如下:(1) 提高工作效率,减少办公室人员,并采用数据完整性约束,将大大减少
18、出错率。(2) 假设投入本系统,机房管理效率会有所提高,以现有的工作人员 3 人计算,可减少 1 人,每人每月平均工资按 1500 元计算,节约人员工资 1120.15=1.8 万元/年。2.3.2 社会可行性社会可行性有时也称为操作可行性,主要论证新系统在学校开发和运行的可能性以及运行后可能对学校的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是机房管理系统完全有可能也有能力采用这样先进的管理技术。它对机房管理带来的影响可以看到:对传统管理理念的冲击,可能引起管理层的变动和人员的调整。对机房工作人员的要求提高,使机房在一定的可能下
19、进行人员精简,促使工作人员继续学习新知识,拓宽计算机在市场环境下的生存空间。2.4 研究设计中要解决的问题(1) 实时刷新问题机房自由上机收费管理系统包括计时收费功能,在用户上机后系统开始计时收费,按花费时间随时扣除费用。这样就面临一个问题:如果用户卡中剩余钱数不足,用户结账下机时有可能已经欠费。所以要求系统要有实时刷新功能,这样可以第一时间发现卡内余额不足的用户,对其进行提醒,避免上机卡透支。(2) 事务性问题犂犂结合了本专业在英语学习方面的优势,开办了“外语学习经验交流会”,与北仑港职工子女交流外语学习经验、心得。三个小时的交流会上,队员们结合自身实际及经验介绍了有关高考、听力练习、口语学
20、习等方面的技巧和方法,同时也热情解答职工子女们的现场提问。在随后几天里,队员们还提供了义务家教,辅导职工子女学习外语。此外,也义务承担了为港区退休工人打扫卫生的工作,陪他们闲话家常,通过这些活动,我们深深地感受到北仑港在职工心中的崇高地位,也感受到了以己所学服务社会、奉献社会的快乐。暑期社会实践活动是高校素质教育的有效载体,是大学生理论联系实际的最好阵营,更是大学生服务社会的最佳窗口。短短 6 天的实践活动,实践队队员们不仅体会到了改革开放给北仑带来的深刻影响,积累了社会服务经验,锻炼了社会实践能力,提高了自身综合素质,还培养了理论学习与实际应用相结合的能力,实现了社会实践过程中“服务社会、锻炼成才”的目标,真正做到了“双赢”。