毕业论文围棋游戏的设计与实现.docx

上传人:b****1 文档编号:163685 上传时间:2022-10-04 格式:DOCX 页数:61 大小:165.55KB
下载 相关 举报
毕业论文围棋游戏的设计与实现.docx_第1页
第1页 / 共61页
毕业论文围棋游戏的设计与实现.docx_第2页
第2页 / 共61页
毕业论文围棋游戏的设计与实现.docx_第3页
第3页 / 共61页
毕业论文围棋游戏的设计与实现.docx_第4页
第4页 / 共61页
毕业论文围棋游戏的设计与实现.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

毕业论文围棋游戏的设计与实现.docx

《毕业论文围棋游戏的设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业论文围棋游戏的设计与实现.docx(61页珍藏版)》请在冰豆网上搜索。

毕业论文围棋游戏的设计与实现.docx

太原理工大学毕业设计(论文)用纸

围棋游戏的设计与实现

摘 要

围棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。

主要完成了人机对战和玩家之间联网对战2个功能。

网络连接部分为Socket编程应用,客户端和服务器端的交互用ClassMessage定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。

服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。

在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。

分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑AI方案,如递归算法、电脑学习等。

算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。

关键词:

围棋,信息自动化,游戏,java

ii

DesignandImplementationofchessgame

ABSTRACT

Goasachesstournamentsportisverypopularinthefolk,inordertoknowtherenjurulesandtechniques,andartificialintelligenceresearchsimple,decidedtouseJavagobanggamedevelopment.Maincompletedtheman-machinebetweennetworkingandmultiplayergamewithtwofunctions.NetworkconnectionpartsforSocketprogrammingapplications,clientandtheservertointeractwiththeClassMessagedefinition,hasgoodscalability,theclientisresponsibleforthemaintenanceandcollectinformationofuserinputinterface,anderrorhandling.Thebasicinformationoftheservermaintenanceonlineusersandanytwoagainsttheuser'sinformationboard,dynamicmaintenanceuserlist.Throughdeepsearchandvaluationinman-machinegamemodule,toimprovecomputerchessplayer'sintelligence.

Analysisofseveralfactorsthathaveeffectontheprecisionofthevaluationmodule,andputsforwardsomeimprovetheprecisionofthemethod,aswellastothenumberofnodesinthesearchtocomparethem,onthebasisofthesealgorithmsanalyzesomeimproveAIscheme,suchasrecursivealgorithm,computerlearning,etc.Algorithmresearchhelpstounderstandtheprogramstructure,enhancethelogicalthinkingability,intheotherartificialintelligencealsohasagreatreferencefunction.

Keywords:

Go,InformationAutomation,Games,Java

目 录

摘 要 I

ABSTRACT II

第1章 绪论 1

1.1背景 1

1.2设计内容 2

第2章 围棋对弈系统 4

2.1围棋概述 4

2.1.1围棋定义 4

2.1.2开发围棋的任务及目的 5

2.2主要系统介绍 5

2.3本章小结 6

第3章围棋对弈系统的设计 7

3.1系统需求分析 7

3.2系统开发及运行环境 8

3.3系统主要功能要求 8

3.4系统总体结构 9

3.5本章小结 10

第4章 围棋对弈系统的具体实现 11

4.1界面设计 11

4.2输赢判断设计 14

4.3程序设计及调试运行 15

4.4本章小结 15

第5章 结束语 16

参考文献 17

致 谢 18

附 录 19

译文资料 33

中文译文 47

iii

第1章 绪论

1.1背景

围棋是一种智力游戏,起源于中国。

中日韩是现今围棋的三大支柱,但近年来日本围棋逐步衰弱,形成了中韩争霸的局面。

围棋是中华民族传统文化中的瑰宝,它体现了中华民族对智慧的追求,古人常以

“琴棋书画”论及一个人的才华和修养,其中的“棋”指的就是围棋。

被人们形象地比喻为黑白世界的围棋,是我国古人所喜爱的娱乐竞技活动,同时也是人类历史上最悠久的一种棋戏。

由于它将科学、艺术和竞技三者融为一体,有着发展智力,培养意志品质和机动灵活的战略战术思想意识的特点,因而,几千年来长盛不衰,并逐渐地发展成了一种国际性的文化竞技活动。

围棋是一种策略性二人棋类游戏,使用格状棋盘及黑白二色棋子进行对弈。

目前围棋流行于亚太,覆盖世界范围,是一种非常流行的棋类游戏。

中国围棋规则是数子法,围棋的本质是:

谁的占地面积大谁获胜。

围棋的规则十分简单,却拥有十分广阔的落子空间,使得围棋变化多端,比其它棋类复杂深奥。

这就是围棋的魅力所在。

下围棋对人脑的智力开发很有帮助,可增强一个人的计算能力、创造能力、思维能力、判断能力,也能提高人的注意力和控制力。

下围棋对儿童少年的智力发展起到积极作用,使他们能更好的分析事物。

Java语言是当今最为流行的程序设计语言之一作为一门非常优秀和极为健壮的编程语言,它同时具有的面向对象,与平台无关,分布式应用,安全,稳定和多线程等优良的特征,使用Java语言,不仅可以开发出功能强大的大型应用程序,而且Java语言本身突出的跨平台的特性也使得它特别适合于Internet上的应用开发,可以这样说,

Java的出现使得所开发的应用程序“一次编写,处处可用”的实现成为了可能。

近来随着计算机的快速发展,各种各样的电脑游戏层出不穷,使得我们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。

其中战胜过国际象棋世界冠军-卡斯帕罗夫的“深蓝”便是最具说服力的代表。

越来越多的具有智能的机器进入了人类的生活,人工智能的重要性如今显而易见。

自己对人工智能比较感兴趣,而围棋游戏程序的开发实现这个课题,正好提供给我这样一个研究的机会,通过对人工智能中博弈方面的研究(人机对弈),让我在简单的人机对弈全局设计,以及具体到相关算法上有了深入的了解。

人工智能属于计算机科学的领域,它以计算机技术为基础,近几十年来,它的理论和技术已经日益成熟,应用领域也正在不断扩大,显示出强大的生命力。

人工智能大致可以分成几个学科,它们每一个都是独特的,但是它们常常又互相结合起来完成设计任务,这时,这些学科之间的差别就变的很模糊。

人工智能在专家系统,自然语言理解,自动定理证明,自动程序设计,人工智能在机器人学、模式识别、物景分析、数据库的智能检索、机器下棋(实质上是博弈论问题)和家用电器智能化等领域都有广泛的应用。

而这个课题就是和人工智能中的博弈论领域紧密相关的。

这个题目核心是人工智能和Socekt编程,。

并且人工智能中的博弈部分,由于采用了大量的搜索算法,其中很多被利用到各方面。

它的概念、方法和技术,正在各行

30

各业广泛渗透。

智能已经成为当今各种新产品、新装备的发展方向。

所以,趁着这个机会,对人工智能中比较容易实现的人机博弈进行了解研究学习,也是很实用且很有必要的。

1.2设计内容

此设计是一个小游戏(围棋)的实现,主要运用了GUI(用户图形界面)API(应用程序借口)来实现。

此程序没有用到图片的引用,棋盘和棋子的设计完全是应用函数绘制, 再加入复选框,按钮,标签及实现本游戏的用户界面布局。

在页面上通过单纯的JCreator实现的下棋程序,能够实现提子,打劫等简单的下棋功能。

更好的掌握java编程以及布局和设计。

通过课程设计把课堂上讲的内容融会贯通,学会设计程序、开发应用软件、开发系统软件等各项工作。

通过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面向对象中的继承和多态的概念要理解、会使用,在程序中提高代码的重用性,使设计的程序结构清晰、易于维护。

一、棋盘

盘面有纵横各十九条等距离、垂直交叉的平行线,共构成19×19=361个交叉点

(以下简称为“点”)。

在盘面上标有几个小圆点。

称为星位,中央的星位又称“天元”。

二、棋子

棋子分黑白两色。

均为扁圆形。

棋子的数量以黑子181、白子180个为宜。

三、围棋的下法

1、对局双方各执一色棋子,黑先白后,交替下子,每次只能下一子。

2、棋子下在棋盘的点上。

3、棋子下定后,不得向其他点移动。

4、轮流下子是双方的权利,但允许任何一方放弃下子权。

四、棋子的气

一个棋子在棋盘上,与它直线紧邻的空点是这个棋子的“气”。

棋子直线紧邻的点上,如果有同色棋子存在,则它们便相互连接成一个不可分割的整体。

它们的气也应一并计算。

棋子直线紧邻的点上,如果有异色棋子存在,这口气就不复存在。

如所有的气均为对方所占据,便呈无气状态。

无气状态的棋子不能在棋盘上存在,也就是第四条——提子。

五、提子

把无气之子提出盘外的手段叫“提子”。

提子有二种:

1、下子后,对方棋子无气,应立即提取。

2、下子后,双方棋子都呈无气状态,应立即提取对方无气之子。

六、计算胜负

1、贴3又3/4子的规则第一步,把死子捡掉。

第二步,只数一方围得点(叫做目)并记录下来(一般围得点以整十目为单位),再数刚才那一方的子数并记录下来,再把目数和子数加起来。

第三步,如果数的是黑棋,再减去3又3/4子,如果数的是白棋,再加上3又3/4

子。

第四步,结果和180又1/2(棋盘361个点的一半)比较,超过就算胜,否则判负。

2、让先与让子

让先不贴目,让子要贴还让子数的一半(就当被让方是预先收了单官)。

第2章 围棋对弈系统

2.1围棋概述

网络围棋在中国的出现几乎跟随着互联网同步成长,1998年,联众率先推出了网络围棋对弈。

几年来各大网络围棋平台先后上线,出身各异,水平也参差不齐。

根据网络资料显示,截止2007年底,中国网络围棋平台平均在线人数达6万人。

大型的游戏平台如QQ游戏、联众游戏中都有围棋游戏。

也就是说QQ围棋、联众围棋都是镶嵌在其游戏平台之上。

依靠游戏平台用户人数的优势,这两个平台围棋用户人数占据了网络围棋用户

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1