五子棋游戏设计与实现文献综述
2020-04-13 15:28:06
1 五子棋游戏
1.1课题背景
五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为连珠,英译为Renju,英文称之为Gobang或FIR(Five in a Row 的缩写),亦有连五子、五子连、串珠、五目、五目碰、五格等多种称谓。
五子棋起源于古代中国,发展于日本,风靡于欧洲。对于它与围棋的关系有两种说法,一说早于围棋,早在 ” 尧造围棋 ” 之前,民间就已有五子棋游戏;一说源于围棋,是围棋发展的一个分支。在中国的文化里,倍受人们的青睐。本世纪初五子棋传入欧洲并迅速风靡全欧。通过一系列的变化,使五子棋这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。
而Java语言是当今最为流行的程序设计语言之一,作为一门非常优秀和极为健壮的编程语言,它同时具有的面向对象,与平台无关,分布式应用,安全,稳定和多线程等优良的特征,使用Java语言,不仅可以开发出功能强大的大型应用程序,而且Java语言本身突出的跨平台的特性也使得它特别适合于Internet上的应用开发,可以这样说,Java的出现使得所开发的应用程序”一次编写,处处可用”的实现成为了可能。
1.2课题研究的意义
近来随着计算机的快速发展,各种各样的电脑游戏层出不穷,使得我们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。其中战胜过国际象棋世界冠军-卡斯帕罗夫的”深蓝”便是最具说服力的代表;其它像围棋的”手淡”、象棋的”将族”等也以其优秀的人工智能深受棋迷喜爱。
越来越多的具有智能的机器进入了人类的生活,人工智能的重要性如今显而易见。而且自己对人工智能比较感兴趣,而五子棋游戏程序的开发实现这个课题,正好提供给我这样一个研究的机会,通过对人工智能中博弈方面的研究(人机对弈),让我在简单的人机对弈全局设计,以及具体到相关算法上有了深入的了解。人工智能属于计算机科学的领域,它以计算机技术为基础,近几十年来,它的理论和技术已经日益成熟,应用领域也正在不断扩大,显示出强大的生命力。人工智能大致可以分成几个学科,它们每一个都是独特的,但是它们常常又互相结合起来完成设计任务,这时,这些学科之间的差别就变的很模糊。人工智能在专家系统,自然语言理解,自动定理证明,自动程序设计,人工智能在机器人学、模式识别、物景分析、数据库的智能检索、机器下棋(实质上是博弈论问题)和家用电器智能化等领域都有广泛的应用。而这个课题就是和人工智能中的博弈论领域紧密相关的。
这个题目核心是人工智能和Socekt编程,并且人工智能中的博弈部分,由于采用了大量的搜索算法,其中很多被利用到各方面。它的概念、方法和技术,正在各行各业广泛渗透。智能已经成为当今各种新产品、新装备的发展方向。所以,对人工智能中比较容易实现的人机博弈进行了解研究学习,也是很实用且很有必要的。
1.3课题的研究方法
首先确定的就是开发环境。Myeclipse具有很强有力的优点,比如免费、程序代码排版功能、有中文化包、可增设许多功能强大的外挂、支持多种操作系统(Windows、Linux、Solaris、Mac OSX)等等。所以说用它来作为五子棋的开发的确是非常合适。而MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,对于提高工作效率有着难以言说的优势。
其次确定全部进程的布局框架。用Java来开发此五子棋游戏先确定主要流程:因网络对战触及较少的算法,所以第一步程序实现了五子棋的棋盘和棋子,并添加类来判断输赢条件,这是很主要的前提,在此基础上更轻易增添电脑AI 。五子棋游戏主要包括两个方面的算法,一个是人工智能电脑,还有就是判断胜负。而人工智能电脑AI方面是困难的,也可以说是人工智能是这个问题的深度的好坏。是以,大部分时候需要在AI算法的钻研和改良上,通过钻研国内一些五子棋算法和参考一些游戏计划算法,然后对这些算法进行比较,筛选出各种算法的优点,最后来提高电脑AI的智能。
2 五子棋游戏开发环境和应用技术
2.1 Java开发环境
Java是由Sun公司发展出来的程序语言,它本身是一种面向对象程序语言。Java也号称是能跨平台使用的语言,这主要是因为Java本身被编译之后,并不是直接产生可执行的码,而是产生一种中间码叫作 ByteCode,这种码必需在透过 Java 的直译器来解读它,才能够真正的被执行,所以只要平台上装有这种Java的直译器,就能解读ByteCode也就能执行Java编译过的程序,因此只要在平台上安装了java直译器就能运行java程序,与在何种平台无关。在目前的市场上用的最多的就是手机上能运行的java游戏。对于java所编程的程序可以分为两类:java applet和java application两种。Application是一个独立的可执行的应用程序,不需要嵌套其他就可以自行运行,比如HotJAVA(浏览器)就是使用java application编写出来的。而java applet与application相反,它不能自行的运行,必须嵌套相应的工具才能运行,它可以在支持java的浏览器中运行,也就是说它必须嵌入到HTML文件中才能够运行。还有就是,java application是在DOS命令方式下进行调试或者运行,而java applet是在浏览器环境下进行的。