当前位置:文档之家› JAVA课程设计围棋对弈(含代码)

JAVA课程设计围棋对弈(含代码)

Java程序课程设计任务书一、主要任务与目标创建一个围棋对弈平台。

基于Panel类定义一个面板子类,在其中利用Graphics类的drawLine()方法绘制棋盘格线,利用fillOval()方法绘制棋盘四角的星位。

为面板注册MouseEvent监听器,为一个按钮注册ActionEvent事件监听器,实现单击鼠标布子、单机一个重新开局等操作。

黑白棋子基于Canvas类的子类,其中,paint()方法用来绘制棋子,通过为棋子注册MouseEvent事件监听器实现双击棋子吃子、右击棋子悔棋操作。

Canvas组件表示屏幕上一个空白矩形区域,应用程序可以在该区域内绘图,或者从该区域捕获用户的输入事件。

必须重写paint方法,以便在Canvas上执行自定义图形。

主类为Frame的子类,前面创建的棋盘被置入其中。

二、主要内容与基本要求系统的功能要求:1.要求有黑白两色棋子,保存所有已下的棋子,包括在棋盘上的所有棋子和被踢掉的,若某一次落子没有造成踢子,包括所有被这个棋子提掉的棋子及这个棋子本身。

如果踢子,则保存所有被踢掉的棋子。

保证实现下棋的基本操作如:可以允许悔棋,落子,提示信息,重新开始游戏等功能。

2.熟悉JAVA中swing的组件运用,基本工具的熟练掌握。

学习并掌握以下技术:Java;熟练使用以下开发工具:JCreator 等三、计划进度1.12月28日--12月29日:搜集资料、查阅文献,确定选题2.12月29日--01月02日:需求分析,系统设计,系统功能模块完善3.01月02日-- 01月06 日:编程实现系统、系统测试与修改4.01月05日-- 01月07日:课程设计报告撰写5.01月07日--01月07日:课程设计报告答辩四、主要参考文献:[1].陈轶.姚晓昆编著.Java程序设计实验指导.北京:清华大学出版社,2006[2].[3].赵文靖编著.Java程序设计基础与上机指导.北京:清华大学出版社,2006[4].[5].吴其庆编著.Java程序设计实例教程.北京:冶金工业出版社,2006[6].[7].陈国君等编著.Java2程序设计基础.北京:清华大学出版社,2006[8].[5].Java网络编程实例教程,清华大学出版社,冯博等,2005.1摘要围棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。

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

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

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

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

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

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

关键词:围棋,信息自动化,游戏,javaABSTRACTAs a chess athletic sports, the folk very popular, to familiar with renju rules and skills, and research simple artificial intelligence, decided to use Java development renju game. Main completed the man-machine against and between players networking against two functions. Network connection parts for Socket programming application, the client and the server interaction with scale-up macro definition, have very good scalability, the client is responsible for maintenance and collect user interface input, and error handling. Server maintenance, online users of the basic information and any two against the user board information, dynamic maintenance user list. In theman-machine right through the depth search and valuations module, to improve the intelligent computer player. Analyses the influence of valuation module precision of several elements, and puts forward some measures of improving precision, and they search number of nodes in the comparison, in these algorithm is analyzed on the basis of some improve computer AI scheme, such as recursion algorithm, computer learning, etc. The algorithm for help to understand the program structure, strengthen the logical thinking ability, in other artificial intelligence also have very great reference role.Keywords: information automation , games , Java目录JA V A程序课程设计任务书 (II)摘要 ................................................................................................................................ I V ABSTRACT .. (V)目录 .............................................................................................................................. V I 第1章引言 .. (1)1.1背景 (1)1.2课程设计内容 (2)1.3任务分工 (4)第2章围棋对弈系统 (5)2.1围棋概述 (5)2.1.1围棋定义 (6)2.1.2 开发围棋的任务及目的 (7)2.2主要系统介绍 (7)2.3本章小结 (8)第3章围棋对弈系统的设计 (9)3.1系统需求分析 (9)用户登陆界面图 (9)3.2系统开发及运行环境 (10)3.3系统主要功能要求 (11)3.4.系统总体结构 (12)3.5本章小结 (13)第4章围棋对弈系统的具体实现 (14)4.1界面设计 (14)4.1.1用户登陆界面图 (14)4.1.2用户注册界面图 (15)4.1.3 系统主界面 (18)4.2程序设计及调试运行 (21)4.3本章小结 (21)第5章结束语 (22)致谢 (23)参考文献 (24)附录源代码 (25)第1章引言1.1 背景围棋是一种智力游戏,起源于中国。

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

围棋是中华民族传统文化中的瑰宝,它体现了中华民族对智慧的追求,古人常以“琴棋书画”论及一个人的才华和修养,其中的“棋”指的就是围棋。

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

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

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

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

中国围棋规则是数子法,围棋的本质是:谁的占地面积大谁获胜。

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

这就是围棋的魅力所在。

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

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

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

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

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

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

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

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

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

相关主题