当前位置:文档之家› 五子棋本科毕业

五子棋本科毕业

五子棋本科毕业
五子棋本科毕业

五子棋本科毕业

第一章绪论

1.1开发背景:

游戏软件是当今世界发展最迅速,最有影响力,最有潜力与活力的领域之一?游戏软件深受广大青年人喜爱,而且在发达国家中老年人也有大部分喜欢游戏的,因此游戏软件在很大程度上给予绝大部分人精神上的娱乐?第二次世界大战以后,电子计算机技术得到了突飞猛进的发展?先是由晶体管代替了笨重的真空管,后来出现了集成电路和大规模集成电路,使电子子计算机一代一代实现更新,同时软件技术也发展迅速?在美国,集中了许多计算机软件的设计人才,他们工作之余,时常喜爱编一种能与人斗智的“游戏”,以此来锻炼编程的能力?这种“游戏”花样繁多,但其特点都是利用计算机软件事先设计好的“分析”?“判断”能力反过来与人较量?由于不断修改更新,使计算机的“智力”水平与人难分高低?到了90年代,游戏软件已经为世界各国的人使用,BLACKISLAND和Blizzard.这两个强大的游戏制作组起到了巨大的带动作用,还有中国的洛河工作室在国内也起到了巨大作用,他们让很多很多人喜欢上了游戏软件,打开了这个市场。如今游戏软件产业已经受到了广泛的关注,它年轻有潜力而且吸引人,让人们日益丰富的生活需求得以满足。

五子棋游戏更是吸引着不同年龄段的人群,无论男女老少都可以玩,都喜欢玩,而当前微型计算机已经是在广大人群中流行着,用电脑来下五子棋更是一种时尚。五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。在上古的神话传说中有“女娲造人,伏羲做棋”一说,《增山海经》中记载:“休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。”李善注引三国魏邯郸淳《艺经》中曰:“棋局,纵横各十七道,合二百八十九道,白黑棋子,各一百五十枚”。可见,五子棋颇有渊源。亦有传说,五子棋最初流行于少数民族地区,以后渐渐演变成围棋并在炎黄子孙后代中遍及开来,可以说五子棋是我们的国粹之一了。而当前五子棋程序的发展也非常快,从最初的双人发展到人机(有AI),然后到现在的网络对战,已经受到越来越多人的喜爱和重视。

1.2课题意义:

人类之所以不断在进步,是因为我们人类一直不断的在思考,五子棋游戏程序的开发符合人类进步也是促进人类进步的一大动力之一。五子棋游戏程序让人们方便快捷的可以下五子棋,让人们在何时都能通过下棋来提高逻辑思维能力,同时也培养儿童的兴趣以及爱好,让孩子更加聪明。

同时,五子棋游戏程序的开发也使得五子棋这个游戏得到了广泛的推广,让世界各地的人们知道五子棋,玩上五子棋,这已经不是局限。五子棋游戏程序使得越来越多的人喜欢上了五子棋,热爱下五子棋,它是具有很好的带动性的。随着互联网络的不断普及,越来越多的人可以在网络上就能够与他人下五子棋了。

1.3五子棋游戏的发展与现状:

目前,连珠这一棋类运动已迅速在国际上发展起来。外国人都十分看好这一不起眼的智力游戏,并认为五子棋不仅能提高思维、开发智力、手脑并用、修身养性而且富含哲理,具有东方的神秘和西方的直观,是中西文化的交汇点。许多国家的人对五子棋都有不同的爱称,例如韩国人把五子棋称之为“情侣棋”,言下之意是情人之间下五子棋有利于增加情感的交流;欧洲人称之为“中老年棋”,表示五子棋适合中老年人的生理特点和思维方式;美洲人喜欢将五子棋称之为“商业棋”,就是说商人谈生意时可边下棋边谈生意,棋下完了生意也谈成了。由此可见,尽管国度不同,语言各异,但人们都可以借助五子棋这一简单而又深奥的棋艺进行交流、比赛,增进友谊。

当前,有40多个国家和地区都在下五子棋,并有各种规模和级别的比赛。1989年8月在日本京都、1991年8月在俄罗斯联邦的莫斯科、1993年8月在瑞典、1995年8月在爱沙尼亚的塔林分别举行了第一、二、三、四届世界锦标赛。除第三届的冠军是爱沙尼亚人之外,其余三届的冠军都是日本人。五子棋的世界锦标赛,每两年举办一次,其申国竞争也十分激烈。日本目前拥有自己的五子棋职业棋手,并且对连珠(五子棋)技术的研究也相当普遍和全面,就水平也正在日益增强。同时,五子棋的理论研究与探索也呈现蓬勃发展的势头,从1858年第一部五子棋专著问世以来,目前,全世界有2000多种五子棋的书籍及期刊,分别以日文、俄文、英文、瑞典文及中文出版发行。五子棋在我国的北京、上海、天津、云南、浙江、广东、四川、湖北、

辽宁、新疆、河北等省(区)市都有很大的发展。北京多次举办了北京地区的五子棋赛,如“思曼杯”、“京空杯”、“奇奇童杯”、“北京第六届民族团结杯”和“北京第四岂民族运动会”的五子棋比赛。上海地区举办了“上文杯”五子棋大赛。云南省以及其他省市亦举办过许多五子棋比赛。所有这些赛事都越来越多地吸引了无数人们的关注,表明了根埴于中国的五子棋有着广泛的群众基础,是群众喜闻乐见的体育活动。

而现在,很多很多游戏平台上面都有五子棋游戏供我们玩,任何游戏平台上面只要有棋牌类游戏的,那么它就有五子棋在里面,网络五子棋比赛,在联众,263,QQ游戏,UC里进行了10几年了可见,五子棋游戏在网络上面是非常火暴的,而且在棋牌游戏里面玩家人数排名总会占到很前面,不愧是风靡全球的棋牌游戏啊!在未来中,将会有越来越多的人关注五子棋,喜欢五子棋,那么将其变为商业化也会越来越多,而且还可以以教育孩子的方式来将其嵌套进去,或者用来做测试等等,可以说以后的五子棋游戏会是那么的精彩,那么的让人憧憬。那么对于它的游戏开发和发展也将会上升到举足轻重的地位去,它的发展会是相当之快的,就让我们拭目以待吧。

1.4论文的组织结构:

本文由第一章绪论,第二章介绍软件的基本功能和特点,第三章软件的总体设计,第四章软件各个功能的设计与实现,第五章总结,参考文献和致谢七部分组成。

第一章绪论由研究背景、五子棋的发展前景、五子棋程序的基本步骤和本文的组织结构组成。

第二章介绍软件的开发工具和和软件的基本功能,另外介绍软件所要实现的目标。

第三章软件总体设计和软件的总体分析。

第四章详细分析软件各模块的设计与实现包括绘制棋盘、下棋功能、判断胜负、下棋信息、时间设置、认输以及悔棋等功能组成。

第五章介绍软件的操作以及演示。

最后第六章为总结和致谢。

第二章五子棋程序的介绍与规划

2.1软件的基本功能:

1.显示一个十九行十九列的围棋棋盘。

2.在棋盘上面在对应位置通过点击鼠标下子,棋盘上将在相应的位置上显示棋子,并且棋子在横纵交点上。

3.可以自动判断游戏是否结束,是否黑方或者是白方已经胜利,并且跳出对话框来提示玩家。

4.在游戏棋盘上方会有一个游戏信息,这个游戏信息是用来提示当前是黑白双方的哪一方下子,玩家可以根据这个提示来相应的下棋,而不会导

致不清楚轮到哪一方下棋。

5.可以重新开始游戏,并且有认输功能,在下棋提示上提示哪方时点认输,哪一方就输了,并且有悔棋功能。

6.还可以对游戏时间进行设置,判断是否超出规定的时间,如果超出时间则自动判断为输。

2.2开发运行环境:

1.中心处理器:双核1.6GHZ;

2.内存:1G;

3.硬盘:320G;

4.操作系统:WINDOWSXP;

5.开发工具:MyEclipse7.5;

6.编程语言:JAVA。

2.3软件的开发手段以及工具的介绍:

此软件我是通过MyEclipse这个开发软件来开发的,用的是JAVA语言编写。将会用到Swing来编程序,Swing是在JAVA的基础图形化用户界面AWT的基础上拓展的API集,Swing的功能是通过JAVA代码编写窗口程序,创建图形化的用户界面(GUI)。Swing可以创建窗体、面版,在窗口中导入或者绘制图片,或者输入文本信息等等,结合JAVA的JDBC和/或IO操作可以实现数据的保存。

Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。JAVA的特点是:

1、Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。

3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(https://www.doczj.com/doc/c99846134.html,),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java 的安全检查机制使得Java更具健壮性。

5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。

6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java 平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可

以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。

7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。

8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。

10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。

11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。

MyEclipse是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。

在结构上,MyEclipse的特征可以被分为7类:

1. J2EE模型

2. WEB开发工具

3. EJB开发工具

4. 应用程序服务器的连接器

5. J2EE项目部署服务

6. 数据库服务

7. MyEclipse整合帮助

对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。

简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。

2.4软件的实现目的:

五子棋游戏程序所要实现的目的是让我们可以在电脑上下棋,而不需要去买,可以随时玩,方便快捷。而且能更好的推广五子棋于世界各地,此软件也在于提供给爱好五子棋的人,也吸引更多的人喜欢上五子棋,也具有很大很大的商业价值。使五子棋游戏程序在以后的制作中功能越来越强大,外观越来越好看。

第三章软件总体设计与分析

3.1用户需求分析:

通过软件功能的分析,根据五子棋爱好者的需求,得出以下需求信息:

1.具有重新开始功能;

2.具有认输功能;

3.具有提示该轮到哪一方下棋的功能;

4.退出游戏功能;

5.判断胜负功能;

6.时间设置功能;

7.悔棋功能。

还有用户对游戏界面的要求,通过上述的用户需求,我们可以得出一个总体的设计方案。由上述的用户需要,可以对程序的基本功能进行一个有效的分析,规定下游戏的基本功能,基本功能如下结构图。

3.2软件功能结构图:

此五子棋程序最主要的四大功能是:下棋,判断胜负,重新开始与认输,游戏时间设置。大体的功能如下图:

3.3软件各个功能的简要说明:

1. 绘制十九行十九列的棋盘:首先是每行每列的距离都是一样的,并且棋盘上面有八个星,棋盘中间有个天元点,跟围棋的棋盘一样。

2. 棋盘上面落子:点击鼠标以后,会在相应位置落下棋子,并被绘制出来,黑子是一个实心的黑圆,白子是一个实心的白圆加上一个等大空心的黑圆。棋子落在交点上:我们在下五子棋棋的时候,棋子都是会落在交点上的,而并非落在格子里面,那么我们就要规定当我点击鼠标时,选取距离鼠标所取点的最近的左上交点为绘制棋子的中心点,那么就可以实现棋子落在交点上了。

3. 黑白双方轮流落子:黑方落子以后就要轮到白方,交替进行,这是下棋的基本要求,因此我们就要弄一个互斥事件进去,

让他们交替的

落子。不能落在相同位置:当我们落子时,会不小心落到相同位置上

去,那么就要出现提示,不能落在相同位置上,需要重新落子,实现

的设想是当这个点已经绘制过棋子以后,我们就要给一个布尔变量,

让它为假,那么只能在它为真时才能绘制棋子,否则就要重新落子到

别的地方去。

4.判断输赢:当五个相同颜色子都连在了一起的时候,我们就要判其

为赢,这五个子可以在横竖方向上连起,也可以在斜方向上连起。

5.游戏信息:我们应该在棋盘的上面设置一个游戏信息的,用来提示

当前轮到哪一方下棋了,以便于玩家知道谁在下,这个功能只要在黑

白双方轮流下棋功能的过程中添加一个提示信息用于显示到界面上

的就可以了。

6.重新开始游戏就是把棋盘上的子全部清空,回复到一开始的时候的

状态,重置之前所有的数据。认输的功能就是在判断输赢功能的基础

上添加的,让玩家对自己没信心的时候使用。退出游戏的功能就是直

接把窗口关闭就可以了。

7.时间设置:时间设置功能要调用到线程和监听,他的主要作用是给

玩家设置规定的时间,也是五子棋游戏的一个下法规则,当哪一个玩

家超出了规定的时间时,那么就会判断他输了,并且弹出对话框提示

以及重新开始游戏。

3.4软件设计中使用到的JAVA软件包以及类和方法:

在用JAVA设计软件的时候,使用到SUM公司提供的一些软件包,这样使得我们编写程序更加简便,以下是使用到的软件包:

Javax.swing.JFrame //javax.swing软件包提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。JFrame 类是java.awt.Frame 的扩展版本,该版本添加了对 JFC/Swing 组件架构的支持。JFrame 是用来创建窗体的swing 类,用来创建一个图形界面的原始窗口,并且可以设置其大小,位置等属性,是swing 编程的基础类之一。JFrame这个类中,我们将要用到的主要方法是:

setVisible(); //设置窗体是否显示,里面填上true,那么窗体就可以显示出来了,如果填false,窗体不显示。

setTitle(); //设置窗体的标题,需要什么标题,就在里面写上你的标题就可以了,比如我要填入五子棋作为标题,那么可以这样写: setTitle(“五子棋”)。

setSize(); //设置窗体大小,这里需要设置的窗体是一个平面的,所以设置窗体大小的时候有高度和宽度这两个像素,输入两个像素就可以确定窗体的大小了。

setLocation(); //设置窗体初始显示的位置,作用是把窗体初始显示的位置摆到让用户看起来舒服的位置。

setResizable(); //设置窗体的大小是否可以改变,为了方便用户使用,可让用户自己拉大或者拉小窗体,达到用户需要的要求。

setDefaultCloseOperation(JFrame_EXIT_ON_CLOSE); //设置窗体关闭方式,关闭窗体的同时结束程序,这样就不会一直占用用户的内存去运行程序,只要不玩了,程序就会自动关闭,这个是游戏软件最基础的以及最必要的一个功能作用。

Java.awt //java.awt 软件包包含用于创建用户界面和绘制图形图像的所有类。

Java.awt.Toolkit //Toolkit此类是所有 Abstract Window Toolkit 实际实现的抽象超类。Toolkit 的子类被用于将各种组件绑定到特定本机工具包实现。

Toolkit.geiDefaultToolkit().getScreenSize().width;

Toolkit.geiDefaultToolkit().getScreenSize().height; //以上这两个方法的作用是取得我们电脑显示屏幕的宽度以及高度。

geiDefaultToolkit()为获取默认工具包,如果名为"java.awt.headless" 的系统属性被设置为 true,则使用 Toolkit 的 headless 实现。如果不存在"java.awt.headless" 或 "java.awt.headless" 被设置false,且存在名为"awt.toolkit" 的系统属性,则该属性将被视为 Toolkit 子类的名称;否则将使用特定于平台的默认 Toolkit 实现。 getScreenSize()这个方法是获取屏幕的大小。在具有多个显示屏的系统上,使用主显示屏。从GraphicsConfiguration 和 GraphicsDevice 可以获得多屏幕感知显示尺寸。

Javax.swing.JOptionPane // JOptionPane 有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。下面用到JOptionPane 的方法有以下几个:

JOptionPane.showMessageDialog(); //这个方法是显示一个消息对话框,主要用来提示信息。showMessageDialog(mf,”我要输入的信息”),这样用以提示用户现在的情况。

JOptionPane.showConfirmDialog(); //这个方法跟前一个方法有点类似,不过它是有判断的。作用是显示一个确认对话框,用户选择对话框中的选

项,然后根据选项返回结果进行判断,需要判断什么,写程序的时候可以自己添加进去,功能更加强大。

JOptionPane.showInputDialog(); //显示请求用户输入内容的问题消息对话框,它以 parentComponent 为父级。输入值将被初始化为initialSelectionValue。该对话框显示于 Component 的窗体的上部,通常位于 Component 之下。显示一个信息输入对话框,它的作用是用来保存用户输入的信息。

Java.awt.event.MouseListener //MouseLinstener 是鼠标监听,功能是接收用户通过鼠标所做的操作,可以取得用户点击鼠标的坐标,从而进行其他的操作。MouseLinstener的使用方法是需要调用到JFrame 的addMouseListener 方法加入监听。它有以下几个方法,是我们写程序需要用到和了解的:

mouseClicked(MouseEvent e) ; //监听鼠标点击事件的操作,对鼠标点击以后进行处理。

mouseEntered(MouseEvent e) ; //监听鼠标进入事件的操作,对鼠标进入某个指定区域以后进行处理。

mouseExited(MouseEvent e) ; //监听鼠标离开事件的操作,对鼠标离开某个指定区域以后进行处理。

mousePressed(MouseEvent e) ; //监听鼠标按下事件的操作,对鼠标按下以后进行处理,这个在我们的五子棋用需要着重用到的。

mouseReleased(MouseEvent e) ; //监听鼠标抬起事件的操作,对鼠标按下后抬起进行处理。

鼠标点击时执行的顺序是:

mousePrssed → mouseReleased → mouseClicked //由此可以判断按西与抬起是否在同一个位置。

MouseEvent类有以下两个需要用到的方法:

getX() ; //得到鼠标的横向位置的坐标,用于判断棋子的位置的时候是需要到的。

getY() ; //得到鼠标的纵向位置的坐标,用于判断棋子的位置的时候是需要到的。

Graphics 类,它的功能是类似于画笔的功能,用来在窗口中绘制文字以及图形等。他的调用是通过覆写JFrame 的 paint() 方法来使用的,通过repaint() 方法来调用。它有以下方法:

drawstring() ; //绘制字符串。

drawOval() ; //绘制一个空心的圆形,用与绘制我们一会五子棋中的白棋需要到的。

fillOval() ; //绘制实心的圆形,也是用到来绘制棋子。

drawline() ; //绘制一条直线,用来画我们的棋盘。

drawRect() ; //绘制一个空心的矩形,功能按钮用到。

fillRect() ; //绘制一个实心的矩形。

drawImage() ; //绘制一个已经存在的图片,将一个图片直接显示到窗体只中去。

setColor() ; //设置画笔的颜色。比如:setColor(Color.RED),那么就把它的颜色设置成了红色。

setFont() ; //设置绘制文字的字体类型。比如:

setFont(new Font(“黑体”,10,10)),那么它的字体就是黑体,大小是10。

Java.io.File //这个是产生中断并且调用文件用到的类。Java.io通过数据流、序列化和文件系统提供系统输入和输出。File 类文件和目录路径名的抽象表示形式。

Java.awt.image.BufferedImage // BufferedImage 子类描述具有可访问图像数据缓冲区的 Image。BufferedImage 由图像数据的 ColorModel 和 Raster 组成。Raster 的 SampleModel 中 band 的数量和类型必须与 ColorModel 所要求的数量和类型相匹配,以表示其颜色和 alpha 分量。所有 BufferedImage 对象的左上角坐标都为 (0, 0)。因此,用来构造 BufferedImage 的任何Raster 都必须满足:minX=0 且 minY=0。可以用来调用一个图片作为我们下棋的背景图片使用。

第四章软件的具体实现

4.1准备工作:

首先用MyEclipse来建一个工程,我将此工程的名字命为:fivechess。然后在我所建的工程里建立一个包,包名为fiveframe。再在包里面建立我需要的类,建立一个名字为FiveChessFrame的JAVA类,继承Javax.swing.JFrame这个类,而且同时引入MouseListener 这个监听的接口,有下面拓展 public

class FiveChessFrame extend JFrame implements MouseListener。那么这个类里面就会有监听的一些命令:

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

} //鼠标点击监听操作。

@Override

public void mouseEntered(MouseEvent e) {

// TODO Auto-generated method stub

} //鼠标进入监听操作。

@Override

public void mouseExited(MouseEvent e) {

// TODO Auto-generated method stub

} //鼠标离开监听操作。

@Override

public void mousePressed(MouseEvent e) {

// TODO Auto-generated method stub

} ////鼠标按下监听操作。

@Override

public void mouseReleased(MouseEvent e) {

// TODO Auto-generated method stub

} //鼠标抬起监听操作。

4.2建立游戏窗口界面:

开始开发游戏的第一步就是先制作出游戏的窗口界面,一个漂亮美丽大方的游戏界面,往往先能吸引玩家去尝试,所以这个地方不能够马虎。

先把我们需要的窗口按需求创建出来:

public FiveChessFrame() {

//设置标题

this.setTitle("五子棋");

//窗体大小

this.setSize(500,500);

//窗体出现位置

this.setLocation((width - 500) / 2, (height - 500) / 2);

//窗体设置为大小不可变

this.setResizable(false);

//将窗体的关闭方式设置为默认关闭后程序结束

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//加入鼠标监听

this.addMouseListener(this);

//将窗体显示出来

this.setVisible(true);

}

然后建立一个测试类,来测试一下我刚才写的窗口是否符合我的要求:import fiveframe.FiveChessFrame;

public class Test {

public static void main(String[] args){

FiveChessFrame ff=new FiveChessFrame();

}

}

运行这个测试类得到如下窗口:

得出这个窗体以后,我们就开始编写界面,我先是调用一个图片作为我这个五子棋程序棋盘的背景,大家都喜欢在木棋盘上面下五子棋,那种会让人感觉到很高雅,所以我就选了一张木质的图片来当我的五子棋的背景图片。

先定义一个背景图片:

//背景图片

BufferedImage bgImage = null ;

下面是调用背景文件,要用try来调用,要不然会出错。

try{

bgImage = ImageIO.read(new

File("e:/JAVA/bg.jpg"));

}catch(Exception e){

e.printStackTrace();

}

由上面的语句可以知道我加入的背景图片存放在e:/JAVA/这个目录下,现在加入把背景显示出来的方法:

public void paint(Graphics g){

//绘制背景

g.drawImage(bgImage, 1, 20, this);

}

这样我们就把背景图片调用到了,再看一下现在的窗口界面:

现在已经可以看到背景图象了,很有木质感,一看到这个背景就让人有想下棋的冲动,当然,要等程序写好了才能下。

那么,下面我要开始绘制棋盘了,我需要绘制一个十九乘十九的棋盘,绘制棋盘需要注意到的问题是,我们点击棋盘的时候,会出现跳动也就是屏幕闪烁的问题,因为我们每下一步棋子,都会需要再绘制一次棋盘的。所以我们就要用到双缓冲技术了,双缓冲技术的使用会使得屏幕不再闪烁,一般双缓冲技术用在手机游戏中,因为手机内存小,屏幕闪烁问题比较明显。在画棋盘的时候需要计算棋盘中每一条线的间距,这里用的是十九乘十九的围棋棋盘那么总宽度可以为360像素,分成18份,没分是20像素,总高度也同样是360像素,如宽度一样分。实现语句:

public void paint(Graphics g){

//双缓冲技术防止屏幕闪烁

BufferedImage bi = new

BufferedImage(500,500,BufferedImage.TYPE_INT_ARGB);

Graphics g2 = bi.createGraphics() ;

g2.setColor(Color.BLACK);

//绘制背景

g2.drawImage(bgImage, 1, 20, this);

//控制字体

g2.setFont(new Font("黑体",Font.BOLD,20));

//输出标题信息

g2.drawString("下棋提示:" , 130, 60);

//把前面改过的字体改回来

g2.setFont(new Font("宋体",0,14));

//输出时间信息

g2.drawString("黑方时间:无限制 ", 30 , 470);

g2.drawString("白方时间: 无限制", 260, 470);

//添加下棋需要到的功能说明

g2.setFont(new Font("黑体",Font.BOLD,15));

g2.drawString("开始游戏", 405, 110);

g2.drawString("游戏设置", 405, 160);

g2.drawString("游戏说明", 405, 210);

g2.drawString("悔棋", 425, 260);

g2.drawString("认输", 425, 310);

g2.drawString("关于", 425, 360);

g2.drawString("退出", 425, 410);

五子棋游戏的设计与实现毕业设计论文

毕业论文(设计)题目五子棋游戏的设计与实现

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

二年级校本课程教材《五子棋》

巧手连珠五子棋基础入门 二年级

《五子棋》课程纲要 实施学校:小学 课程类型:校本课程 授课课时:14课时 授课对象:2年级学生 一、课程目标 1.了解五子棋的历史渊源,弘扬民族文化,培养学生的爱国情感和良好的棋德意识。学会五子棋比赛的方法和注意事项,通过比赛中“胜不骄败不馁”,提高学生良好的心理素质,正确认识自己,不盲目自信,提高自身抗挫折的能力,做事不自卑,适应当今时代,培养学生积极向上的竞争意识。 2.理论教学和实战比赛逐步提高学生的棋艺水平,因材施教,以五子棋教学为载体,努力促进每一位学生逻辑思维能力的提高,有意识的培养学生的创新能力。 3.学习五子棋的礼仪,养成学生良好的下棋习惯,培养学生尊重他人,愿意与他人合作和沟通的意识,为学生终身的发展奠定好的基础。培养学生体会享受下棋的乐趣,培养积极的人生体验,乐观地对待人生。 4.学习五子棋规则,学生能体悟到没有五子棋规则,就没有五子棋这个项目的辨证道理,“没有规矩不成方圆”,明确规则是事物存在的必要条件。

二、课程内容 第一章五子棋的历史和现状 第二章五子棋的棋具 第三章五子棋的规则 第四章五子棋的开局 第五章五子棋基本战术 第六章五子棋评价方案 三、课程实施 教学方式: 充分利用教师教学资源多媒体,采用直观演示法,启发讲解,小组合作交流,师生互动交流,讲练结合等生动、活泼、有趣的教学方式,呈现一个愉悦、和谐的氛围。 学习方式: 通过自主预习,小组合作交流,班级展示等学习方式进行学习。 第一阶段 1.讲故事的方法,学生了解五子棋的发展历史等相关知识 2.了解五子棋的棋具知识和初步了解五子棋的知识。 3.基本学会现代连珠五子棋的规则,基本学会黑棋和白棋不同的取胜方法,并进行基本的取胜训练。 4. 学生自选对手比赛,使学生掌握五子棋比赛的基本方法。 第二阶段 1.比较深入的理解五子棋的知识。

五子棋报告-java

XXXX大学 XX学院 课程设计报告 课程名称:面向对象程序设计 题目名称:五子棋游戏设计 学生姓名: 专业班级: 指导教师:任晓强

一、课程设计目的与任务(四号、宋体、加黑、顶格) (1)掌握Java编程、面向对象的基础知识。 (2)较熟练地编写Java应用程序Application。 (3)了解Java的常用标准类库、编程技巧、异常处理。 (4)联系已学过的内容,巩固所学的理论,增强独立工作能力。(5)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。 (6)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。 课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。 二、课程设计内容 1本设计题目的主要内容 设计一个15╳15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能: 1.选择落子的先后顺序 2.重置棋盘 3.刷新重新开始 4.退出提示 并且规定退出者判为负,但退出过程中要有提示。以防不小心点错了。 最后判断某一方是否为五子连珠。 实现一个简单的多用户五子棋的游戏程序,包括如下两个界面 (1)选择对弈桌(执黑、执白)。 (2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负); 2 设计思想与程序构架

程序流程图 程序的功能分配 a. 棋盘的绘制 public void draw_qipan(Graphics G) 添加按钮 Button b1=new Button("开始"); Button b2=new Button("重置游戏"); Label lblWin=new Label(" "); Checkbox ckbHB[]=new Checkbox[3]; Button exist = new Button("退出"); public void init(){ ckbHB[0]=new Checkbox("执白",ckgHB,false); ckbHB[1]=new Checkbox("执黑",ckgHB,false); ckbHB[2]=new Checkbox("观看",ckgHB, false); } c. 鼠标棋子的触发事件 public void mouseClicked(MouseEvent e) { Graphics g=getGraphics(); int x1,y1; x1=(); y1=(); if ()<20 || ()>300 || ()<20 || ()>300) {

基于c语言五子棋小游戏--本科生毕业设计

五子棋小游戏 一.需求分析 现在有越来越多的人使用电脑,而且五子棋的受众广泛但实体棋操作较为繁琐且平时较难实现,所以电脑版的五子棋游戏应运而生。大家对于这个小游戏的需求如下:首先,设计这个游戏最基本的就是实现玩家之间对战,玩家可以通过某些操作来实现对战功能;有时候可能由于时间等原因,玩家可能需要保存游戏,此时需要一个“保存”功能;有时候可能玩家由于失误会走错棋,此时就需要“悔棋”功能;有时候玩家可能觉得这局游戏玩的非常不好,这时候就需要“重新开始游戏”功能;玩家在玩过游戏之后有可能想保存游戏记录便于以后分析此时就需要“排行榜”功能;有些玩家在玩游戏时喜欢听音乐,这时候就需要在下棋时可以播放背景音乐的功能;最基本的通过输入坐标来实现落子的操作方式很繁琐而且很不方便,这时候就可以将落子机制改为更直观的光标移动模式。 二.设计思路 1.玩家对战功能:在玩家对战功能中,玩家可以通过按方向键来移动光标、按空格来实现落子,最终在横或竖或斜方向上达成五个相同颜色的棋子来获得胜利。 基本思路: (1)使用二维数组保存棋局。 (2)由于要使用光标,所以使用输出缓冲器。 (3)打印棋盘。 主要使用Print()函数来算出棋盘并将缓冲器内容输出。

其余为其中调用的辅助函数。chessPrint()是打印交点坐标的字符的函数;getCurse()是打印光标的函数;write()函数是用来向缓冲器里面写入字符串的函数;ln()函数是负责将缓冲器写 入位置提行的函数;Display()函数是将缓冲器中内容输出到屏幕的函数。 (4)下子,在后文有详细介绍。 (5)胜负平判断 调用Check()函数进行四个方向的检查,检查是否有五子连珠。

五子棋游戏设计与实现毕业设计

南京工程学院 毕业设计说明书(论文) 题目:五子棋游戏设计与实现

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

五子棋入门

[转]【五子棋】入门基础知识 [转]【五子棋】入门基础知识 五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代 休闲的明显特征"短、平、快",又有古典哲学的高深学问"阴阳易理";它既有简单易学的特性,为人民 群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西 方的直观;既有"场"的概念,亦有"点"的连接。它是中西文化的交流点,是古今哲理的结晶。 五子连珠棋基本知识和棋扑研究 1、先手:对方必须应答的着法。 2、绝对先手:相对先手而言,特指冲四、嵌五。 3、四三:指同时具备两个先手,其中一个四,另一个是活三。 4、活三(包括连三和跳三):①连三:紧紧相连的同色三子②跳三:中间间隔一子的活三 5、嵌五:亦叫跳冲四。 6、迫下取胜:指白棋利用黑棋禁手取胜的战术。 7、自由取胜:追下取胜以外的取胜方法都叫自由取胜。 8、长连:相同颜色的连续六子或六子以上。

9、禁手:对局中禁止使用的战术或被判为负的行棋手段。 10、阳线:棋盘上可见的横线与直线的总称。 11、阴线:亦称斜线,为棋盘上不可见的斜行线。 12、开局:也称“布局”,对局的第一阶段,过程大体为七至十几着之间,种类繁多,日本的职业连珠 五子棋有二十四种开局。 13、局面:亦称“局势”,为对局中某一段时间内双方子力的配置情况。 14、优势:对局中某一阶段内,一方棋子布置上优于对方,称为“优势”。 15、胜势:指足力取胜的局面优势。拥有这类优势的一方,如不出现错着,可以获胜。当一方拥有胜势 时,其对方即为败势。 16、妙着:也称“高招”。为对局中走出的一步精妙着法。此着既合乎逻辑,又出人意料、引人入胜, 有使局面顿时改观的效果,对局势的发展及对局的质量都有重大影响。 17、好着:也称“佳着”。对局中成功的某一步着法。 18、正着:对局的某一局面中的正确着法。 19、劣着:对局中,导致严重不利后果的一步错误着法。 20、败着:也称“失着”、“漏着”。对局的某一局面的一步严重错误着法。往往造成局面恶化而导致 输棋。

五子棋(JAVA版)实习报告及原代码

实习报告 课程名称信息系统认知实习实习题目java五子棋专业 班级 学号 学生姓名 实习成绩 指导教师 2010年1月 前言

摘要 五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。主要完成了人机对战和玩家之间联网对战2个功能。网络连接部分为Socket编程应用,客户端和服务器端的交互用Class Message定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑AI方案,如递归算法、电脑学习等。算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。 1引言 1.1课题背景 五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为连珠,英译为Renju,英文称之为Gobang或FIR(Five in a Row 的缩写),亦有连五子、五子连、串珠、五目、五目碰、五格等多种称谓。 五子棋起源于古代中国,发展于日本,风靡于欧洲。对于它与围棋的关系有两种说法,一说早于围棋,早在“尧造围棋”之前,民间就已有五子棋游戏;一说源于围棋,是围棋发展的一个分支。在中国的文化里,倍受人们的青睐。本世纪初五子棋传入欧洲并迅速风靡全欧。通过一系列的变化,使五子棋这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际 比赛棋。 Java语言是当今最为流行的程序设计语言之一作为一门非常优秀和极为健壮的编程语言,它同时具有的面向对象,与平台无关,分布式应用,安全,稳定和多线程等优良的特征,使用Java语言,不仅可以开发出功能强大的大型应用程序,而且Java语言本身突出的跨平台的特性也使得它特别适合于Internet上的应用开发,可以这样说,Java的出现使得所开发的应用程序“一次编写,处处可用”的 实现成为了可能。 1.2本课题研究的意义 近来随着计算机的快速发展,各种各样的电脑游戏层出不穷,使得我们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。其中战胜过国际象棋世界冠军-卡斯帕罗夫的“深蓝”便是最具说服力的代表;其它像围棋的“手淡”、象棋的“将族”

(完整版)五子棋本科毕业设计

第一章绪论 1.1开发背景: 游戏软件是当今世界发展最迅速,最有影响力,最有潜力与活力的领域之一?游戏软件深受广大青年人喜爱,而且在发达国家中老年人也有大部分喜欢游戏的,因此游戏软件在很大程度上给予绝大部分人精神上的娱乐?第二次世界大战以后,电子计算机技术得到了突飞猛进的发展?先是由晶体管代替了笨重的真空管,后来出现了集成电路和大规模集成电路,使电子子计算机一代一代实现更新,同时软件技术也发展迅速?在美国,集中了许多计算机软件的设计人才,他们工作之余,时常喜爱编一种能与人斗智的“游戏”,以此来锻炼编程的能力?这种“游戏”花样繁多,但其特点都是利用计算机软件事先设计好的“分析”?“判断”能力反过来与人较量?由于不断修改更新,使计算机的“智力”水平与人难分高低?到了90年代,游戏软件已经为世界各国的人使用,BLACKISLAND和Blizzard.这两个强大的游戏制作组起到了巨大的带动作用,还有中国的洛河工作室在国内也起到了巨大作用,他们让很多很多人喜欢上了游戏软件,打开了这个市场。如今游戏软件产业已经受到了广泛的关注,它年轻有潜力而且吸引人,让人们日益丰富的生活需求得以满足。 五子棋游戏更是吸引着不同年龄段的人群,无论男女老少都可以玩,都喜欢玩,而当前微型计算机已经是在广大人群中流行着,用电脑来下五子棋更是一种时尚。五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。在上古的神话传说中有“女娲造人,伏羲做棋”一说,《增山海经》中记载:“休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。”李

五子棋基本知识基础简介

五子棋基本知识基础简介 五子棋基础初识五子棋,是1997年我在读大学时,那时分第一次晓得还有五子棋,说实话,那时分只能用一句话形容:晓得有五子棋这游戏,什么规则都不晓得,就晓得五个连在一同就是赢。 其实宿舍的朋友也就两个人玩,那时分应该叫第一印象。 到了大学毕业,我工作之后,一次和朋友打PS,偶或谈到喜欢,才晓得哥们也是喜欢五子棋,真有只恨相识太晚的觉得,于是欣然下了一盘,可是他却说我的三三输了,问起然,才知还有禁手这一规则,遗憾的是他那时也只是晓得三三禁手,至于复杂的他也不知,就这样,在工作的10年下了四盘棋,由于哥们曾经因公调离。 真的认识五子棋,应该说还是要感激大学的那位朋友,很久没有相见,偶或在QQ里再次邂逅,应酬之后,我们还是有共同的喜好—五子棋,遗憾的是我每盘必输,输的我颜面扫地,这才狠下心决议认真学习一下,至少要赢他几盘。 于是激动地跑到书店,毫不犹疑地买下彭建国教师的《五子棋入门》和《强化锻炼手册》,一没事就看,说句实话,没有真正的了解过,只图赢他几盘,于是便融会贯通花月必胜,可不幸的是,我的朋友很快升任上海的公司副总,下棋的时机简直如海市蜃楼普通,加上结婚孩子的出世,我彻底与五子棋决断。 不晓得是股票炒得不如意,还是由于打牌玩的真实无聊,赢了挨骂,输了本人郁闷,于是,又激动地到安徽棋牌中心下了几盘五子棋,

说句真实话,输的惨不忍睹!!十一盘一盘没赢!庆幸的是我这个人一向争强好胜,从不服输。 于是商定他,一个月之后再下。 这时分时间定格在2011年2月,我应用上班的空暇时间,能够说迫不及待地在网络搜索各类必胜,可喜的是,我找到了花月和蒲月的必胜定式,一个直指,一个斜指,能够对付两个不同开局。 一切似乎阐明:有志者事竟成!在之后的一个月里,我先手成功的概率在60%以上。 网上的哥们也很奇异,说怎样进步那么大?我喜滋滋地说自学!可是在4月的一天,我碰到了一个对手,一个徐州的名叫“总输的人,他怪怪的跳开防卫和“日形防卫,让我觉得就像无形的网罩住一样,无从发力。 于是偷偷地问他,才知还有八卦和妖刀这利器。 永不认输的性格必定我将继续学习,于是想象找一个五子棋群或者论坛这类的,以便找人寻觅答案,庆幸的是我认识了华夏群,认识了五子茶馆,认识了那么多酷爱五子棋的人。 渐渐地认识了五子棋还有那么多学问,还有那么多复杂的禁手规则,那么多文雅的星月称号。 急功近利永远是学习的大敌。 为了追求胜率,我只顾记忆必胜定式,一点也不理解,一旦他人不按定式下,本人就一筹莫展,觉得有力使不出,更困惑的是明明晓

五子棋兴趣小组活动计划

五子棋少年宫活动计划 五子棋就是我国民间熟知的古老棋种,它简单易学,老少皆易,趣味性极高。它起源于我国并得以盛传,现今已形成一种国际间的比赛项目,被亚欧许多国家学习并发扬广大。五子棋不仅就是一种国粹,就是一种中西文化交流的媒介,中国人民喜欢它,全世界人民也喜爱它;而且,五子棋也就是一种有助于身心健康的智力活动。所以开设五子棋课程,既可以弘扬我国的传统民族文化,培养学生的爱国情感,又能开发学生智力,促进逻辑思维,培养学生的自信心,可谓一举两得。 一、指导思想 五子棋就是科学、文化、艺术、竞技融为一体的智力体育项目。有助于青少年智力开发,逻辑思维与想象能力的培养,分析能力与记忆力的促进,思维的敏捷性与严密性得以提高。同时又能培养学生顽强勇敢、坚毅沉着、机智灵活、大局观等优秀的意志品质,增强学习生活中的计划性与灵气性,增进友谊,陶冶高尚情操,它还能丰富人们的文化生活,增进友谊,陶冶高雅情操 二、课程的性质、目的及任务 (一)、向学生传授中国五子棋的基本知识、基本技术、基本技能与比赛规则。 (二)、丰富学生的课余生活,增加其参与社会活动的途径,进一步促进中国棋类运动的推广与普及。

(三)、通过教学实践,培养学生独立思考与统观全局的观念与能力。 三、学情分析 (一)、五子棋兴趣小组大部分学生虽然接触过此棋种,但就是对其的研究甚少,应该从最基本的入手,传授学生基本知识的同时以培养学生兴趣为目的。 (二)、学习五子棋首先要学会一些基础知识,明确棋规的要求,学会思考,这样能为自学创造有利条件 (三)、学生的学习习惯还没有完全养成,课堂中要体现活泼,快乐,要结合竞赛辅助。 四、教学思路 五子棋入门容易,趣味性强。教学中,先讲解五子棋入门的基本知识,包括其历史渊源,基本下法,比赛规则及决杀棋点等,学习这部分知识时,采取讲练结合的方式,即教师讲述十分钟,学生练习三十分钟,引导激发学生学习的兴趣,培养学生良好的合作意识,体会下棋的乐趣,要积极乐观地对待人生。深刻体会“没有规矩,不成方圆”的辨证道理。 五.活动措施: 1、根据学生的实际情况,少讲多练,让学生在每一堂课中都能学到一点棋艺的知识,而用更多的时间去下棋。另外,在课堂上,还要随时针对孩子在下棋中表现的不足之处,比如一些错误的走发,及时给于讲解、指导。

(完整版)五子棋人工智能课题毕业论文

人工智能专家系统论 文 题目五子棋AI算法和网络通信的研究 学生姓名陈维梅 学号 系别商务学院 年级2009 专业计算机科学与技术 指导教师 职称讲师 完成日期

五子棋AI算法和网络通信的研究 摘要: 本系统将利用五子棋游戏作为研究对象,通过设计出一个能够实现两种不同对战模式的五子棋游戏。并对所涉及到的相关技术进行初步的探讨,将重点放在人机对奕中AI算法研究方面。 游戏中提供两种选择模式:人机对战和人人对战。在人机对战中玩家通过选择不同的AI等级和电脑一决高下。在人人对战中双方可以进行下棋,悔棋但要通过对方的同意。同时还可以实现在线聊天。AI的不同等级是以不同的搜索深度确定的。本系统以深度为2,3,4分别为初级,中级,高级。网络对战中则使用Socket实现点对点通信。 关键字:五子棋、博奕AI算法、网络通信 Research the AIof Renju and the Communication Summary: This system will use Renju as research objects, passing to design a Renju game that can provide two kinds of dissimilarities to the play mode. to involve to of the related technique carry on the study of the first step, play more attention in the AI calculate way research aspect. It provide two kinds of choice modes in the game:Person's machine to the war and the everyone to war.The player passes to choose the different AI grade and computer in person's machine the rightness the war

jv五子棋毕业设计整套

1引言 随着计算机技术的不断发展,网络技术的普及范围越来越广,网络能够提供的服务多样、便捷,已经成为人们生产生活中不可缺少的重要组成部分。如今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点,成为大部分现代人休闲娱乐的首选。 网络五子棋游戏是使用Java语言开发的一款游戏。它使用SOCKET建立连接,多线程处理数据,以及可嵌入网络浏览器的APPLET作为客户端,这些特点使这款游戏无论是服务器还是客户端的实现都相对容易。通过对该软件的编写,还可以巩固学生对以上各种知识的掌握和理解。

2 JAVA语言概述 2.1 JAVA简介 JAVA是Sun Microsystem公司开发的编程语言,是一个简单,面向对象,分布式,解释性,强壮,安全,与系统无关,可移植,高性能,多线程和动态的语言。 2.1.1 JAVA的基本特点 (1) 简单性 Java与C++语言非常相近,但Java比C++简单,它抛弃了C++中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。 Java实现了自动的垃圾收集,简化了内存管理的工作。 (2) 面向对象 Java提供了简单的类机制和动态的构架模型。对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。 (3) 多线程 多线程使应用程序可以同时进行不同的操作,处理不同的事件。在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。 (4) 分布性 Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便的访问其他对象。 (5) 体系结构中立 Java是一种网络语言,为使Java程序能在网络的任何地方运行,Java解释器生成与体系结构无关的字节码结构的文件格式。为了使Java的应用程序能不依赖于具体的系统,Java语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。 (6) 安全性 用于网络、分布环境下的Java必须要防止病毒的入侵,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。 2.1.2 Java中输入/输出流概念 过滤流DataInputStream 和DataOutputStream 除了分别作为FilterInputStream 和FilterOutputStream的子类外,还分别实现了接口DataInput 和DataOutput。接口DataInput 中定义的方法主要包括从流中读取基

五子棋-Java课程设计

《面向对象程序设计》 课程设计报告 实验时间:2010年10月26日 实验班级:********************** 实验报告总份(片)数: 1 份(片) 实验指导老师:***** ******* 设计小组 湖南省吉首市吉首大学 课程设计报告 简单的游戏——五子棋 小组成员(姓名、学号): **(组长)** ** ** ** ** 一、实验分工

二、开发环境(实验编译以及测试环境) 硬件环境: CPU:Intel 奔腾双核E5200 主频2.5GHz 内存:2G 软件环境: 操作系统:Windows 7 编程环境JDK7.0 开发工具:Eclipse SDK 三、使用环境(用户运行环境) 硬件环境: CPU主频在500MHZ以上,内存在128M以上 软件环境: JAVA运行环境+ Windows XP或Windows 2000 以上操作系统 目录 第一章总体设计.............................................................................................................................. 1 1.1设计的目的.......................................................................................................................... 1 1.2本系统的主要功能.............................................................................................................. 1 1.3系统包含的类及类之间的关系。...................................................................................... 1 1.4 Java源文件及其功能......................................................................................................... 2 1.5 项目构建思路..................................................................................................................... 2第二章模块功能介绍.................................................................................................................. 12 2.1主类Chess...................................................................................................................... 12

小学五子棋社团教案

XXX小学 五子棋社团 2017-2018 第二学期执教:XXX

五子棋社团活动教案 第一周 一、教学目标: 1、初步了解五子棋的基本知识。 2、培养学生对下五子棋的兴趣。 二、教学准备: 五子棋材料 三、教学过程: 1、出示棋盘和棋子,教师演示,让学生认识什么是五子棋。 2、讲解棋盘的结构及如何构成五子的排列方法。 3、理解基本规则:最先连成5个的为胜。 4、让学生两人一组,操作练习。 四、小结

一、教学目标: 1、观看五子棋影碟,让学生了解五子棋的一些基本的术语。 2、培养学生的学习兴趣。 二、教学准备: 五子棋影碟 三、教学过程: 1、引导学生观看影碟。 2、提问:什么是先手?什么是后手?什么是活三?跳三?跳四?死四? 3、讨论:怎么样才能赢? 四、小结

一、教学目标: 1、通过学习《五子兵法》,观察图解,使学生进一步掌握下五子棋的技能。 2、发展学生的思维能力,提高学生的智力水平。 二、教学准备: 图片 三、教学过程: 1、教学生学习《五子兵法》 先手要攻,后手要守。以攻为守,以守待攻。 攻守转换,慎思变化。先行争夺,地破天惊。 守取外势,攻聚内力。八卦易守,成角易攻。 阻断分隔,稳如泰山。不思争先,胜比登天。 初盘争二,局终抢三。留三不冲,变化万千。 多个先手,细算次先。五子要点,次序在前。 斜线为阴,直线为阳。阴阳结合,防不胜防。 连三连四,易见为明。跳三跳四,暗剑深藏。 己落一子,敌增一兵。攻其要点,守其必争。 势已形成,败即降临。五子精华,一子输赢。 2、出示图片,讲解《五子兵法》的分解图

3、学生分组练习。 四、小结。

(完整版)五子棋游戏的设计与实现毕业设计

毕业论文(设 计) 题目五子棋游戏的设计与实 现 所在院(系)数学与计算机科学学 院

专业班级信息与计算科学1101班 指导教师拓守恒 完成地点陕西理工学院 2015年5 月18日

五子棋游戏的设计与实现 作者:王勇 (陕理工学院数学与计算机科学学院信息与计算科学专业1101班,陕西汉中 723000) 指导教师:拓守恒 [摘要]五子棋是起源于我国古代的黑白棋种之一,是一种简单的娱乐性较强的大众游戏,深受广大玩家的喜爱,但同时作为比赛,五子棋游戏还有着深奥的技巧。 本系统的实现采用了C语言的模块化的程序设计方式,用Visual C++ 6.0软件来实现程序的编译运行。实现黑白两方分别落子,通过棋盘上方的棋盘动态信息提示,轮流落子,本系统中游戏的每一个功能在程序中都是一个相对独立的模块,比如,棋盘模块,棋子模块,选择游戏模式模块,悔棋模块等等在程序中都是独立的,但它们之间通过逻辑关系的链接又构成了一个可以使游戏正常运行的程序。 为实现游戏的双人对战模式和人机对战模式,并使得游戏尽量的简单化,本系统需要达成以下目标:设计一个简洁的游戏初始界面;制定合法规则,使游戏能公正的进行,并且可以断定胜;支持人机对战模式,可以是电脑通过人工智能和合法规则选出最优落子位置;可以悔棋,在玩家落子落错位置时,可按下悔棋键进行悔棋。 [关键词]五子棋,游戏设计,C语言,双人对战,人机对战,人工智能

Designer and implementation of gobang game Author: wangyong (Grade11,Class 1, Major in Information and computing science, Mathematics and computer science Dept. Tutor: Tuo shouheng Abstract:Gobang is one of the black and white kind of originated in ancient China, is a simple and entertaining stronger mass games, loved by the majority of players, but at the same time as the game, gobang game with profound skills. The implementation of this system method, using Visual C + + 6.0 software to realize the program compiler running. Implementation of black and white two parties move later, respectively, by the board at the top of the dynamic message board, take turns to move later, this game in the system each function in the program is a relatively independent modules, such as, the board module, pawn module, select game mode module, back module and so on in the program are independent, but the link through the logical relationship between them and form a can make the normal operation of the game program. In order to realize the double mode and man-machine game mode, and make the game as far as possible the simplification, the system needs to achieve the following goals: design a simple game of initial interface;the legal rules, can make the game fair, and you can call;support the man-machine

五子棋基本技巧讲解学习

五子棋基本技巧

五子棋基本技巧 基本技巧 一、四种摆放(形象的叫法): 二、最常见的取胜法:一子双杀,既落下一个子,同时形成两条棋路,使对手封住一条,就来不及封住另一条,从而取胜。 三、不堵情况下,一子双杀的十大基本棋路: 两头空边二空跳二空中二空两头空图1 图2 图3 图4 边二空图2 图5 图6 图7 跳二空图3 图6 图8 图9 中二空图4 图7 图9 图10 图示说明: 圆形图标:表示已经落下的棋子。 十字图标:之后落下的棋子,同时形成两条棋路,使对手堵住其中一路,就来不及去堵另一路。 图1:两头空-两头空图2:两头空-边二空

图3:两头空-跳二空图4:两头空-中二空 图5:边二空-边二空 图6:边二空-跳二空 图7:边二空-中二空图8:跳二空-跳二空 图9:跳二空-中二空图10:中二空-中二空

四、一头被堵情况下,一子双杀的八大基本棋路。 一头被堵情况下,落下一个子,形成两条棋路,使一头被堵的那条棋路形成四个连子,没有被堵的那条棋路,形成三个子的棋路,可以是两头空、边二空、跳二空、中二空,从而使对手堵住一路,就来不及堵另一路。 两头空边二空跳二空中二空 内插连四图1 图2 图3 图4 外插连四图5 图6 图7 图8 分为两种情况: 1.从被堵棋路的内部形成四颗子: 图1:内插连四-两头空图2:内插连四-边二空 图3:内插连四-跳二空图4:内插连四-中二空

2.从被堵棋路的外部形成四颗子: 图5:外插连四-两头空图6:外插连四-边二空 图7:外插连四-跳二空图8:外插连四-中二空 开局技巧 五子棋的开局也称布局,一般在3~7手左右完成。五子棋的开局是十分重要的。一般情况下,一局五子棋的着数在20至40着之间,因此,它的开局阶段是非常短暂的,大约在七八着至十几着之间。在这一阶段的争夺中,双方的布局、应答将对以后的胜负起着关键的作用。一般来说,黑棋以攻为主,而白棋则以防为主。

Java五子棋毕业设计论文

摘要 人工智能是一门正在迅速发展的新兴的,综合性很强的交叉科学。它与生物工程、空间技术一起被并列为二十一世界三大尖端技术。它的中心任务是研究如何使计算机去做那些过去只能靠人的智力才能做的工作。目前各发达国家都把人工智能作为重点项目,列入本国的高科技发展计划当中,投入巨大的人力和物力。 计算机人机对弈也是其中之一。作为人智能研究的一个重要分支,计算机博弈是检验人工水平的一个重要方面。它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响。 五子棋人机对弈是计算机博弈中的一种。研究其计算机算法,可以让我们看到人工智能的稚形,也有助于我们人脑的开发。五子棋是我国发明的,研究它可以让更多的外国人了解五子棋,这有助于我国优秀文化的推广。 关键词:人工智能,计算人机对弈,五子棋,算法

目录 摘要 (Ⅰ) 目录 (Ⅲ) 第一章绪论 (1) 第二章需求分析 (2) 2.1 业务需求 (2) 2.2 性能需求 (2) 2.3 系统平台需求 (2) 第三章五子棋相关基础 (4) 3.1 五子棋解释 (4) 3.2 五子棋的基本规则 (4) 3.3 五子棋的常用术语 (5) 第四章开发工具、环境及其技术 (7) 4.1 Java简介 (7) 4.2 Java编程环境 (9) 第五章程序设计思路与实现 (10) 5.1 程序设计思路 (10) 5.2 程序设计 (13) 结论 (33) 参考文献.................................................................................................................... 致谢............................................................................................................................ 附录............................................................................................................................

-五子棋社团活动队教案

陈户初中五子棋活动教案 第一周 活动内容: 一、了解五子棋的技巧: 1、留三不冲四,保留变化 2、防守活三时防在对方攻势强的方向 3、八卦马步是强防守,但不提倡用纯色八卦阵,尤其黑子,禁手制下八卦必败 4、布局时斜行、成角为强攻 5、开局时争活二,自己多做二,挡住对方的活二,并且往往挡对方的活二先,不必攻急 6、下子时考虑对方会怎么走,你再往下一子该怎么走 7、开黑优局要尽快建立棋子间的联系,即“攻聚内力”开白优局时参照 5的后半句,封锁对方行为,抢外围优势。 二、学习技巧一: 五子棋技巧之一:该进攻时,不要防守。 法则:越是积极的进攻,越容易获得取胜的机会。 当你的对手走棋不积极时,你不必跟着他走棋,而 是要考虑自己的棋是否可以进攻。 如图1,白10形成眠三,看起来为下一步进攻做好了准备; 但如果你仔细计算,会发现白棋的进攻并没有连续性。因此,我们认为白棋并不积极,黑棋可以落子11形成攻击。有很多棋手会跟着挡在11-C,虽然这不是坏着,但在当前情况下,完全没有必要,这个时候,你应该去进攻而不是防守。白10应该走A或B点,这样的行棋会更加积极,如此,黑棋就不能走11位攻击了,而是要跟着白棋去防守。 三、练习运用。 四、总结反馈。 第二周 活动内容: 一、温习五子棋总技巧 1、留三不冲四,保留变化 2、防守活三时防在对方攻势强的方向 3、八卦马步是强防守,但不提倡用纯色八卦阵,尤其黑子,禁手制下八卦必败 4、布局时斜行、成角为强攻 5、开局时争活二,自己多做二,挡住对方的活二,并且往往挡对方的活二先,不必攻急 6、下子时考虑对方会怎么走,你再往下一子该怎么走 7、开黑优局要尽快建立棋子间的联系,即“攻聚内力”开白优局时参照 5的后半句,封锁对方行为,抢外围优势。 二、学习技巧2

Java五子棋毕业设计论文

题目:JAVA五子棋对弈程序的设计与实现

目录 摘要 .................................................................... I Abstract ............................................................... II 1 引言 (1) 2五子棋对弈程序的可行性分析 (1) 2.1 五子棋系统设计思路 (1) 2.2 经济可行性分析 (1) 2.3技术上的可行性 (1) 2.4 管理上的可行性 (2) 3 JAVA五子棋对弈现的需求分析 (2) 3.1 用户需求分析 (2) 3.1.1 普通用户主要需要: (2) 3.1.2 系级管理员主要需要: (2) 3.1.3 系统用例图: (3) 3.2 数据字典的描述 (3) 3.2.1用户信息表的数据字典的描述: (3) 3.2.2用户每次游戏信息表的数据字典描述: (4) 3.2.3 用户每盘棋信息表的数据字典描述: (4) 3.2.4 用户每步棋信息表的数据字典描述: (4) 3.3五子棋对弈系统的数据流图 (4) 3.3.1 用户登录数据流图(DFD) (5) 3.3.2普通用户界面显示数据流图(DFD) (5) 3.3.3管理员用户界面显示数据流图(DFD) (6) 3.3.4用户棋局回放数据流图(DFD) (6) 4 JAVA五子棋对弈系统分析与设计 (7) 4.1 系统设计总体思想、目标 (7) 4.2 五子棋人机对弈系统的ER模型 (7) 4.3 JAVA五子棋对弈系统结构、功能设计 (9) 4.3.1 系统结构设计 (9) 4.3.2 系统功能模块设计 (10) 4.3.3设计思路 (11) 4.4 程序设计分析 (11) 4.5 类的设计 (12) 4.6五子棋对弈系统的数据库设计 (15) 4.6.1 系统用户表 (15) 4.6.2 用户棋局表 (16) 4.6.3 用户棋盘表 (16) 4.6.4 用户下棋信息表 (17) 5五子棋相关基础 (17) 5.1 五子棋相关解释 (17) 5.2 五子棋相关规则 (17) 5.3 五子棋常用术语 (18) 6 系统平台、计算模式及技术 (19)

相关主题
文本预览
相关文档 最新文档