能和 Socekt 编程, 。并且人工智能中的博弈部分,由于采 用了大量的搜索算法,其中很多被利用到各方面。它的概念、方法和技术,正在 各行各业广泛渗透。智能已经成为当今各种新产品、新装备的发展方向。所以, 趁着这个机会,对人工智能中比较容易实现的人机博弈进行了解研究
学习,也是 很实用且很有必要的。 1.3 本课题的研究方法 在进行游戏
设计之前,首先决定的第一个
问题就是,使用什么开发环境来编写环 境? 自己虽然比较熟悉 Java 语言,但是实际开发项目经验很少,所以决定用 Jcreator,其拥有高亮语法编辑、使用向导以及完全定制的用户界面,最主要的是 能够自动查找文件于 Main 方法或 Html 文件以支持 Java 小应用程序,然后启 动相应的工具。 其次确定整个程序的结构框架。由于 Applet 运行速度较慢,如果在加上算法搜 索时间,显然不符合
程序的设计要求,决定用 Java 应用程序开发.整个程序的功 能实现流程是这样的:
网络对战涉及算法较少,所以先实现网络部分,实现基本 的棋盘和棋子的类,添加判断胜负条件,这部是基础,也是很重要的,电脑 AI 也在这些基础上添加上来的。这个题目的 2 个功能包括 2 个重要算法,电脑 AI 和胜负条件,胜负条件运算量不大,有固定的模式。难点是人工智能,可以这样 说,人工智能的好坏决定了这个题目的完成深度
。所以,大部份时间花在 AI 算 法的研究和改进上,对于算法我掌握的不多,研究了一些国内的五子棋算法,参 考了一些游戏设计算法,详细比较各种算法的优缺点,而且参考了现代五子棋比 赛的各种规则和技巧,尽量联系实际,努力提高电脑 AI。 1.1.1 规则及解释 1:黑棋先行,白棋随后。从天元开始相互顺序落子。 2:最先在棋盘的横向、竖向、斜向形成连续的相同色五个棋子的一方为胜利。 3:黑棋禁手判负、白棋无禁手。黑棋禁手包括“三、三”“四、四”“长连” ; ; 。 黑方只能用“四、三”去取胜。 4:如分不出胜负,则定位平局。 5:对局中拔子、中途退场均判为负 6:五连与禁手同时形成,先五为胜。 7:黑方禁手形成时,白方应立即指出。若白方未发现或发现后不立即指正,反 而继续落子,则不能判黑方负。
2
北京邮电大学世纪实习报告 五子棋是由两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由执黑棋 的一方将一枚棋子的落在“天元”上,然后由执白棋的一方在黑棋周围的交叉点 上落子。如此轮流落子直到某一方首先在棋盘的直线 横线或斜线上形成连续的 五子或五子以上,则该方就算获胜。但是五子棋的特点是先行的一方优势很大。 因此,在职业比赛种对黑方做了种种限制,以利公平竞争。黑白双方的胜负结果 必须按照职业五子棋的规则要求来决定。
第一章 技术介绍
Java 技术介绍、编程环境介绍 JAVA 技术介绍: Java 技术是一门编程语言,也是一个平台,它基于 Java 虚拟机技术,借助 这个东西建立了跨平台的优势。(题外话:Java 热门的原因之一就是一个跨平 台的概念,和跨平台类似跨浏览器的好处也是如此,这也是现在 AJAX 技术流行 的原因之一。另外现在热炒的 RIA 富客户端的概念下的技术除了 AJAX 外还有 Adobe 的 Flash/Flex,微软的 Silver Light,SUN 的 JavaFX 等,个人更看好 FLash/Flex,原因是 Flash 插件在浏览器端占用率很高) Java 技术的重要性就不讲了,从最近流行的一个统计数据上来说,目前世界 上编程语言 Java 、C 、VB、C++依次排名前 4 位,这排名本身不说明什么,至 少也是工业界对编程语言使用上一个侧面的反映吧。 Java 编程语言与众不同之处在于:Java 程序既是编译型的(转换为一种称 为 Java 字节码的中间语言),又是解释型的(JVM 对字节码进行解析和运行)。 编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码