没有合适的资源?快使用搜索试试~ 我知道了~
java_五子棋 实习报告
4星 · 超过85%的资源 需积分: 42 39 下载量 196 浏览量
2010-12-25
22:25:57
上传
评论 4
收藏 145KB DOC 举报
温馨提示
试读
20页
北京邮电大学世纪学院实习报告,主要针对五子棋的设计过程做出分析,附有代码说明
资源详情
资源评论
资源推荐
实 习 报 告
课程名称 信息系统认知实习
实习题目 java
五子棋
专 业 信息科学与工程学院
班 级 09
网络
1000
班
学 号 1
学生姓名 巩奇
实习成绩 100000000
指导教师
北京邮电大学世纪学院实习报告
2 0 1 0 年 1 月
前言
摘要
五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,
以及研究简单的人工智能,决定用 开发五子棋游戏。主要完成了人机对战
和玩家之间联网对战 个功能。网络连接部分为 编程应用,客户端和
服务器端的交互用 定义,有很好的可扩展性,客户端负责界
面维护和收集用户输入的信息,及错误处理。服务器维护在线用户的基本信息
和任意两个对战用户的棋盘信息,动态维护用户列表。在人机对弈中通过深度
搜索和估值模块,来提高电脑棋手的智能。分析估值模块中的影响精准性的几
个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,
在这些算法的基础上分析一些提高电脑 方案,如递归算法、电脑学习等。算
法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有
很大的参考作用。
引言
课题背景
五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为连珠,
英译为 ,英文称之为 或 的缩写,亦有连五子、
五子连、串珠、五目、五目碰、五格等多种称谓。
五子棋起源于古代中国,发展于日本,风靡于欧洲。对于它与围棋的关系有两
种说法,一说早于围棋,早在“尧造围棋”之前,民间就已有五子棋游戏;一
说源于围棋,是围棋发展的一个分支。在中国的文化里,倍受人们的青睐。本
北京邮电大学世纪学院实习报告
世纪初五子棋传入欧洲并迅速风靡全欧。通过一系列的变化,使五子棋这一简
单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一
种国际比赛棋。
语言是当今最为流行的程序设计语言之一作为一门非常优秀和极为健壮的
编程语言,它同时具有的面向对象,与平台无关,分布式应用,安全,稳定和
多线程等优良的特征,使用 语言,不仅可以开发出功能强大的大型应用程
序,而且 语言本身突出的跨平台的特性也使得它特别适合于 上的
应用开发,可以这样说, 的出现使得所开发的应用程序“一次编写,处处可
用”的实现成为了可能。
本课题研究的意义
近来随着计算机的快速发展,各种各样的电脑游戏层出不穷,使得我们能有更
多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类
游戏水平颇高,大有与人脑分庭抗礼之势。其中战胜过国际象棋世界冠军卡斯
帕罗夫的“深蓝”便是最具说服力的代表;其它像围棋的“手淡”、象棋的“将族”等
也以其优秀的人工智能深受棋迷喜爱。
越来越多的具有智能的机器进入了人类的生活,人工智能的重要性如今显而易
见。自己对人工智能比较感兴趣,而五子棋游戏程序的开发实现这个课题,正
好提供给我这样一个研究的机会,通过对人工智能中博弈方面的研究(人机对
弈),让我在简单的人机对弈全局设计,以及具体到相关算法上有了深入的了
解。人工智能属于计算机科学的领域,它以计算机技术为基础,近几十年来,
它的理论和技术已经日益成熟,应用领域也正在不断扩大,显示出强大的生命
力。人工智能大致可以分成几个学科,它们每一个都是独特的,但是它们常常
又互相结合起来完成设计任务,这时,这些学科之间的差别就变的很模糊。人
工智能在专家系统,自然语言理解,自动定理证明,自动程序设计,人工智能
在机器人学、模式识别、物景分析、数据库的智能检索、机器下棋(实质上是
博弈论问题)和家用电器智能化等领域都有广泛的应用。而这个课题就是和人
工智能中的博弈论领域紧密相关的。
这个题目核心是人工智能和 编程,。并且人工智能中的博弈部分,由于
采用了大量的搜索算法,其中很多被利用到各方面。它的概念、方法和技术,
正在各行各业广泛渗透。智能已经成为当今各种新产品、新装备的发展方向。
所以,趁着这个机会,对人工智能中比较容易实现的人机博弈进行了解研究学
习,也是很实用且很有必要的。
本课题的研究方法
在进行游戏设计之前,首先决定的第一个问题就是,使用什么开发环境来编写
环境自己虽然比较熟悉 语言,但是实际开发项目经验很少,所以决定用
其拥有高亮语法编辑、使用向导以及完全定制的用户界面,最主要的是
能够自动查找文件于 方法或!"#文件以支持 小应用程序,然后启动
相应的工具。
其次确定整个程序的结构框架。由于 $%%# 运行速度较慢,如果在加上算法搜
索时间,显然不符合程序的设计要求,决定用 应用程序开发整个程序的功
能实现流程是这样的:网络对战涉及算法较少,所以先实现网络部分,实现基
本的棋盘和棋子的类,添加判断胜负条件,这部是基础,也是很重要的,电脑
$ 也在这些基础上添加上来的。这个题目的 个功能包括 个重要算法,电脑
$ 和胜负条件,胜负条件运算量不大,有固定的模式。难点是人工智能,可以
北京邮电大学世纪学院实习报告
这样说,人工智能的好坏决定了这个题目的完成深度。所以,大部份时间花在
$ 算法的研究和改进上,对于算法我掌握的不多,研究了一些国内的五子棋算
法,参考了一些游戏设计算法,详细比较各种算法的优缺点,而且参考了现代
五子棋比赛的各种规则和技巧,尽量联系实际,努力提高电脑 $。
规则及解释
:黑棋先行,白棋随后。从天元开始相互顺序落子。
:最先在棋盘的横向、竖向、斜向形成连续的相同色五个棋子的一方为胜利。
:黑棋禁手判负、白棋无禁手。黑棋禁手包括“三、三”;“四、四”;“长连”。黑
方只能用“四、三”去取胜。
&:如分不出胜负,则定位平局。
':对局中拔子、中途退场均判为负
(:五连与禁手同时形成,先五为胜。
):黑方禁手形成时,白方应立即指出。若白方未发现或发现后不立即指正,反
而继续落子,则不能判黑方负。
五子棋是由两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由执黑
棋的一方将一枚棋子的落在“天元”上,然后由执白棋的一方在黑棋周围的交叉
点上落子。如此轮流落子直到某一方首先在棋盘的直线横线或斜线上形成连续
的五子或五子以上,则该方就算获胜。但是五子棋的特点是先行的一方优势很
大。因此,在职业比赛种对黑方做了种种限制,以利公平竞争。黑白双方的胜
负结果必须按照职业五子棋的规则要求来决定。
第一章 技术介绍
技术介绍、编程环境介绍
技术介绍:
技术是一门编程语言,也是一个平台,它基于 虚拟机技术,借助
这个东西建立了跨平台的优势。(题外话: 热门的原因之一就是一个跨平
台的概念,和跨平台类似跨浏览器的好处也是如此,这也是现在 技术流
行的原因之一。另外现在热炒的 富客户端的概念下的技术除了 外还
有 的 ,微软的 , ! 的 等,个人更
看好 ,原因是 插件在浏览器端占用率很高)
技术的重要性就不讲了,从最近流行的一个统计数据上来说,目前世
界上编程语言 、、"、##依次排名前 $ 位,这排名本身不说明什么,
至少也是工业界对编程语言使用上一个侧面的反映吧。
编程语言与众不同之处在于: 程序既是编译型的(转换为一种称
为 字节码的中间语言),又是解释型的(对字节码进行解析和运
行)。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码
采用一种针对 优化过的机器码形式;解释器是 的实现。这段是摘自
网上的,编译原理学的不是很好,对这门语言的背后运行机制理解到这样了。
平台是一种纯软件平台,它有三个版本 %、%%、
%。
剩余19页未读,继续阅读
bywhy
- 粉丝: 2
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2