JAVA五子棋手机网络对战游戏的设计与实现论文

JAVA五子棋手机网络对战游戏的设计与实现论文
JAVA五子棋手机网络对战游戏的设计与实现论文

五子棋手机网络对战游戏的设计与实现

摘要

在现代社会中,手机及其它无线设备越来越多的走进普通老百姓的工作和生活。

随着3G技术的普及与应用,基于Java开发的软件在手机上的使用非常的广泛,手机增值服务的内容也是越来越多,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。

本文基于J2ME技术,以计算机网络游戏的运行流程为基础,分模块开发一款网络五子棋游戏软件。

本文对以下几点内容做了重点研究和探讨:

1、系统整体结构。

根据设计目标,结合普通网络游戏的运行流程,给出了系统总体设计方案,并探讨了系统设计时需要用到的关键技术。

2、手机MIDP客户端的实现。

MIDP客户端是游戏的唯一客户端,主要功能包括连接服务器进行身份验证、进行游戏并不断的与服务器交换数据。

3、后台系统的设计与实现。

后台用来处理与数据库的互联来验证用户身份、处理由客户端发送过来的数据。

由于受到客观条件的限制,本系统的测试是在三星手机模拟器上完成的,但它仍不失具一定的实用价值。

关键词:J2ME;手机游戏;servlet

The design and implementation of gobang battle cell phone

network games

Abstract

In modern society, more and more cell phones and other wireless devices come into the work and life of ordinary people.

With the popularization and application of the 3rd Generation of Digital communication technology,the development of Java-based software in the use of mobile phones is very broad, mobile value-added services are more and more. It plays an import role to enrich people's lives and provide easier access to information.

Based on J2ME technology and a computer network running game flow, sub-module developing gobang game software on-line.

In this paper, the following points as a focus of study and research:

1、The overall system structure. According to the design goals, with the general operation of the network game flow, gives the system design, and explores the key technology, which is used by the design of this system.

2 、The realization of the phone MIDP client. MIDP client is the only game client, the main functions include connecting the server to check the status, playing games and keeping the exchange of data with the server.

3.、The implementation and design of background system. Background is to deal with the Internet database to verify the identity of users, processing the data, which are sent by the clients.

Due to the restrictions of objective conditions, the system's test completed in the Samsung handset simulator. But it is contrasted with a certain degree of practical value. .

Key words:J2ME; handset game; servlet

目录

论文总页数:24页

1引言 (1)

2系统综述 (1)

3手机游戏的现状和关键技术介绍 (2)

3.1软件现状 (2)

3.2J2ME概况 (2)

3.2.1 J2ME的由来 (2)

3.2.2 J2ME的3层体系结构及MIDP简介 (3)

3.3 TOMCAT服务器介绍 (4)

3.4 SERVLET技术介绍 (5)

4 开发环境介绍 (7)

4.1开发环境 (7)

4.2关于SAMSUNG W IRELESS T OOL K IT (7)

5 客户端模块的开发 (7)

5.1综述 (7)

5.2程序的类结构 (7)

5.3游戏的功能流程图 (8)

5.4游戏的实现 (9)

5.4.1 主类Omok的实现 (9)

5.4.2 游戏登录界面以及操作说明界面的实现 (10)

5.4.3游戏画布类的实现 (12)

5.4.4网络连接类的实现 (14)

5.4.5五子棋获胜算法 (15)

6服务器端程序的开发 (17)

6.1数据库的设计与实现 (17)

6.2 SERVLET程序的编写 (17)

7改进建议和措施 (20)

7.1关于图片问题 (20)

7.2软件测试 (20)

7.2.1测试前的准备工作 (20)

7.2.2进行测试 (21)

7.2.3有待添加和完善的功能 (22)

结论 (22)

参考文献 (22)

致谢 (23)

声明 (24)

1引言

Java语言是美国Sun Microsystem的James Gosling、Pratrick Naughton 及Mike Sheridan等人于1991年精心设计出来的计算机编程语言,其构想在于实现使用同一种编程语言所写出来的程序可以在不同的平台上运作。这种架构对于消费性电子产品而言是具有革命性的,因为在消费性电子产品中的处理器及操作系统各不相同,要在这些平台上开发程序必须要了解各个平台的特性,以及其提供的API使用方式,分别开发不同的版本才能执行,影响应用程序的普及性。

近几年,由于微处理器性能的大幅提升,加上无线通讯技术的突破,手持式移动设备开始受到大众的青睐。短短几年内,手机已经升级了几代产品,普及率逐年攀升,生产效率不断上升,产品价格比个人电脑的摩尔定律有更惊人的下调,以至手机是大多是城市居民不可缺少的一件随身设备。继短信、彩信等服务之后,中国移动提供基于Java的百宝箱业务,应用产品遍及商务应用、信息获取、英汉互译、游戏娱乐等多媒体领域。

为了适应移动数据的发展,推动无线电子商务等业务的发展,J2ME(Java 2 Micro Edition)既用于嵌入式系统的Java被引入无线领域。J2ME的出现实际上是Java技术的回归。作为Java2平台的一部分,J2ME与J2SE、J2EE一起,为无线应用的客户端和服务器端建立了完整的开发、部署环境。随着J2ME的应用,它为移动互联引入了一种新的模型,既允许手机可以从互联网上下载各种应用程序,并在手机创造可执行环境离线运行这些程序。由于定义了可执行下载的标准,并在手机上创立了可执行环境和程序开发语言,由此,在移动通信业第一次为软件开发商创造了巨大的商业机会,手机用户在得到丰富应用体验的同时,也大大提高了运营商的网络流量。

2系统综述

本系统采用C/S结构,包括手机客户端和服务器后台两个部分。

客户端采用j2me midp1.0函数编写,保证了非常好的可移植性。服务器端采用了tomcat作为http服务器,免费并且具有非常强大的功能,中间件采用java servlet进行中间过程的处理,具有很好的稳定性和可移植性,采用的数据库则是sql server 2000。

用户需要运行本系统客户端软件,输入用户名和密码进行身份验证,如果验证成功,则可以进入游戏界面,和其他已经登录的玩家进行游戏;如果验证不成功,说明输入的用户名或者密码错误,需要重新进行输入,否则不会进入到游戏界面。

系统分为三层,包括数据库服务器层、功能层和表示层。数据库服务器层主体是SQL2000,功能层由Tomcat+ servlet技术实现,表示层为前台手机操作客户端.总体结构如下图所视:

图1 总体结构图

3手机游戏的现状和关键技术介绍

3.1软件现状

在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行。但是传统手机存在以下弊端:

1. 传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部手机。

2. 传统手机访问互联网是通过WAP(Wireless Application Protocal),所有网络资源必须接通网络才能在线访问,非常耗时、费用亦很高。

而Java技术在无线应用方面的优势非常明显:

1. 应用程序可按需下载,而不是购买由硬件商提供的套件,可升级空大。

2. Java技术提供了一个类库,它使的应用开发商可以创建更为直觉、丰富的用户界面(GUI);

3.Java技术使网络带宽的应用更为有效,因为应用程序可以下载到器件上,并在本地运行,仅仅是在连接到服务器时才会占用网络带宽。

3.2 J2ME概况

3.2.1 J2ME的由来

Java的最大目标和特点,就是"一次编写,到处运行"的平台无关性。但是,一套标准无法适应各种不同的需求。因此,Java技术目前共有三套,分别针对不同的平台和应用。

Standard Edition(J2SE,标准版):针对桌面端PC和工作站的个人和低端

商务应用。

Enterprise Edition(J2EE,企业版):针对服务器端企业级应用,支持Servlets, JSP和XML等等。

Micro Edition(J2ME,袖珍版):针对有限内存,显示和处理能力的设备,主要是消费电子和嵌入式设备领域(这实际正是Java语言设计最初的目标领域)。

图2 java总体架构图

在消费电子和嵌入式设备领域,内存从几百K到几十M,从没有屏幕到Web-TV,CPU从低功耗的嵌入式处理器到206MHz的RISC处理器,硬件条件的差异是相当大的。这就使得J2ME的标准需要有不同的层次和类别来适应这个复杂的领域,因此相比之下J2ME就比J2SE和J2EE的标准要复杂得多。因此,清楚的理解J2ME的体系结构的划分才能更好的理解和掌握J2ME。

3.2.2 J2ME的3层体系结构及MIDP简介

J2ME的3层体系结构依照各种设备的资源特性,将J2ME技术构架分为简表(Profile)、配置(Configuration)和Java Virtual Machine(JVM)3层,然后再进一步细分,这使J2ME能够在每一类设备的限制下工作,而同时提供最低限度的Java语言功能性。

关于J2ME的体系结构,可以这样来进行总结:Configuration的分类是根据计算能力的不同来划分的,同类设备的计算能力相近。Configuration是一个规范,定义了这类设备的共同Java平台,定义与设备无关的Java虚拟机和核心库,是平台相容性的基础。Profile的分类是根据设备功能划分的,同类功能的设备其他各种硬件条件和需求也相近。Profile是一组API,在某一Configuration的基础上扩展了针对设备特定功能的API,使得标准能够完全适应特殊的设备,彻底发挥设备的功能。

J2ME体系的一般结构是:由Configuration定义的Java虚拟机运行于设备的宿主操作系统之上,构成整个平台的基础。Configuration提供了基本的语言特性,Profile提供针对设备的特殊功能API和扩展类库。应用程序的运行环境需要一个Configuration和至少一个Profile,多个Profile可以共存,也可以叠加。

MIDP(Mobile Information Device Profile)定义了针对移动信息处理设备(主要指智能手机和一部分具有无线通信功能的PDA)的图形界面,输入和时间处理,持久性存储,无线电话网络连接之上的一些消息处理(例如短消息),安全等等API,并且考虑到了移动信息设备的屏幕和内存限制。类似于J2SE中的Applet框架,MIDP提供了基于javax.microedition.midlet 包的MIDlet应用程序框架。

应为MIDP提出较的比较早,目前重要的智能手机和PDA操作系统上都已有了相应的实现,而且应用的也比较广泛。

3.3 tomcat服务器介绍

Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta 项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。

由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR 是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR 放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。

在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet 文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件

中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。

Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat 处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。

基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet 非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。

Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。

3.4 servlet技术介绍

Servlet是用Java编写的Server端程序,它与协议和平台无关。Servlet 运行于Java-enabled Web Server中。Java Servlet可以动态地扩展Server

的能力,并采用请求-响应模式提供Web服务。

最早支持Servlet技术的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web Server开始支持标准的Servlet API。

一、Servlet的特点

Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet 具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。

1、高效

在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI 程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等。

2、方便

Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。

3、功能强大

在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。

例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet 还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

4、可移植性好

Servlet用Java编写,Servlet API具有完善的标准。因此,为I-Planet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。

5、节省投资

不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。

二、Servlet的主要功能

Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:

客户端发送请求至服务器端;

服务器将请求信息发送至Servlet;

Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于客户端的请求;

服务器将响应返回给客户端;

Servlet看起来像是通常的Java程序。Servlet导入特定的属于Java Servlet API的包。因为是对象字节码,可动态地从网络加载,可以说Servlet 对Server就如同Applet对Client一样,但是,由于 Servlet运行于Server 中,它们并不需要一个图形用户界面。从这个角度讲,Servlet也被称为Faceless Object。

三、JAVA Servlet的优势

Servlet可以和其他资源(文件、数据库、Applet、Java应用程序等)交互,以生成返回给客户端的响应内容。如果需要,还可以保存请求-响应过程中的信息。

采用Servlet,服务器可以完全授权对本地资源的访问(如数据库),并且Servlet自身将会控制外部用户的访问数量及访问性质。

Servlet可以是其它服务的客户端程序,例如,它们可以用于分布式的应用系统中,可以从本地硬盘,或者通过网络从远端硬盘激活Servlet。

采用Servlet Tag技术,可以在HTML页面中动态调用Servlet。 Servlet API 与协议无关。它并不对传递它的协议有任何假设。像所有的Java程序一样,

JAVA课程设计 五子棋

攀枝花学院课程业设计 五子棋 学生姓名: 学号: 所在院(系):数学院计算机学院专业:信息与计算科学指导教师:讲师 二〇一四年六月 攀枝花学院教务处制

攀枝花学院本科学生课程设计任务书 注:任务书由指导教师填写。

摘要 五子棋作为一类棋类竞技运动,现在很流行,很多人把它作为一类开发智力的一种游戏,锻炼人的思维。这次课题主要是完成人机对战,在对战中电脑根据人的思维做出相应的反应,电脑对战中通过深度的搜索,使得自身有更大的胜算,估值计算也是一种方法,可以提高电脑的智能度。分析模块中影响智能的因素也不少,通过节点比较与节点连接后的结果做出估计提高智能,了解递归算法、电脑学习等对此有很大帮助。算法是程序的灵魂,一旦算法正确那么程序将很好。不同的人工智能将会有不同的帮助,多去了解将更能提高智能程度。五子棋是我国的一门文化,这将使得它更受世界人们的欢迎。有助我国文化发展。 关键词五子棋,智能,算法,模块,人机对战

目录 1 需求分析 (1) 1.1需求来源 (1) 1.2设计目的 (1) 2 功能需求分析 (1) 2.1功能需求 (1) 3 设计与实现 (2) 3.1设计思想 (2) 3.2系统模块结构 (2) 3.3流程图 (2) 4 概要设计 (4) 4.1抽象数据类型定义 (4) 4.2程序包含模块 (4) 4.3模块间关系 (4) 4.4系统功能实现 (4) 5 模块设计 (5) 5.1主界面模块 (5) 5.2选择模块 (5) 5.3判断模块、 (5) 5.4显示模块 (5) 参考文献 (9)

1 需求分析 1.1需求来源 计算机在我们的生活中有越来越重要的角色,我们也越来越离不开计算机,计算机带给我们许多便利,学习好计算机知识已经是必不可少的一项技能了。特别是电子商务、电子邮件等,人工智能现在的热点方向,人们感叹计算机的高效是也感叹自己的聪明,人工智能现在是很好的以方面。 1.2设计目的 该软件为用户提供一个在Windows系统上运行的五子棋游戏小系统。应达到的目的是:建立人机对战的模块,可以机器思考如何应对。已达到提高智力的效果设计出五子棋的游戏界面,创建对象可以在地图中站位,在每一步后计算机会自己运算自己的下一步,任何一方不可以越界,当一方达到五子是判断谁是胜利者,在过程中尽量使得游戏智能程度更高。 2 功能需求分析 2.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.设计目的 (4) 2.设计要求 (4) 3.设计方案 (4) 4.设计内容 (7) 4.1系统的主要结构和类结构 (7) 4.2 (2)五子棋类的结构 (7) 4.3⑶系统工作流程介绍.................................................... 7错误!未定义书签。⑷类的介绍. (8) 4.5 (5) 各个模块的介绍 (8) 4.6 (6)程序运行图示 (14) 5.总结 (16) 参考文献 (17)

(a)1.设计目的 (1)加深我对面向对象程序基本的理解和掌握。 (2)熟练掌握基本流程图的绘制。 (3)熟练visio的一些操作方法。 (4)能够在调试程序中快速发现并排除程序中的错误。 (5)提高面向对象程序语言解决实际中的问题的能力。 (b)2.设计要求 五子棋是玩家在游戏棋盘上逐个输入黑子或白子的坐标,因此游戏要求在DOS界面生成一个可供操作的棋盘。通过输入坐标完成对应落子情况,在输入过程中判断落子是否正确、是否有一方胜利等情况。编写代码可以在VC6.0下编译通过。游戏要能实现五子棋游戏的简单操作。程序中要体现面向对象思想。 (c)3.设计方案 (必须包含系统功能说明、用例图和类图) 一、用例图 落子 基于用户的用例图

步数用例图 系统用例图 1)输出棋盘界面菜单及图像2)开始进入控制3)黑白棋正确输入格式控制4)判断黑白输赢控制5)正确计数对羿步数及下一步所要走的棋盘界面

五子棋(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本课题研究的意义 近来随着计算机的快速发展,各种各样的电脑游戏层出不穷,使得我们能有更多的娱乐项目,而棋类游戏能起到锻炼人的思维和修身养性的作用,而且棋类游戏水平颇高,大有与人脑分庭抗礼之势。其中战胜过国际象棋世界冠军-卡斯帕罗夫的“深蓝”便是最具说服力的代表;其它像围棋的“手淡”、象棋的“将族”

五子棋课程设计报告

单 位 分院(系) 专 业 学 号 学生姓名 指导教师 完成日期 2011 年 05 月 日 摘 要 五子棋的历史:五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代 的传统黑白棋种之一.发展于日本,流行于欧美.容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性. 五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏.有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的.在上古的神话传说中有“女娲造人,伏羲做棋”一说,《增山海经》中记载:“休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵.”李善注引三国魏邯郸淳《艺经》中曰:“棋局,纵横各十七道,合二百八十九道,白黑棋子,各一百五十枚”.这段虽没明讲是何种棋类,但至少知道远古就以漂亮的石头为棋子.因而规则简单的五子棋也可能出自当时,并是用石子作棋子.亦有传说,五子棋最初流行于少数民族地区,以后渐渐演变成围棋并在炎黄子孙后代中遍及开来. 程序说明:本程序是一款棋类益智游戏程序,是用WIN-TC 编写在WINDOWS 系统下运行的娱乐游戏.本程序可以实现人人对战,操作采用键盘上的上下左右键控制棋子的上下左右移动,由空格键控制下棋,双方都可通过ESC 键终止游戏. 石家庄铁道大学课程设计 五子棋 课程设计题目

游戏开始后,红、白双方轮流下棋,程序会根据双方下棋的先后顺序自动显示不同颜色的棋子,提示当前下棋的棋手,任何一方由五子连成一线时,游戏结束,结束时会显示对战双方胜负情况. 关键词:五子棋游戏应用程序,C语言,图形函数 目录 第1章选题的意义2 意义2 设计思路 2 系统的基本要求3 第1章选题的意义 意义 通过游戏过程增加编程的兴趣,提高编程水平.编制该程序我对以下的知识点进行的巩固和掌握:1.数组元素为结构体的数组应用.2.全局变量应用.3.按键的处理.4.数组元素与蛇、食物的对应关系.5.图形方式等等.加深对所学知识的理解与掌握,增强自己对所学知识解决实际问题的能力,为以后的程序开发打下基础. 设计思路 棋盘设计为18×18格,初始状态光标在棋盘的中央,玩家1先走,轮流落子,当一方连成五子或下满棋盘时,游戏结束(连成五子的一方获胜,下满棋盘为和棋).当游戏一方胜利后显示胜利信息.从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是0代表空格,1代表白棋,2代表黑棋.这样程序的主要工作是接收棋手按键操作,棋手用Up、Down、Left、Right控制光标移动,空格键表示落子.一旦接收到空格键,说明棋手落子,先判断是否是有效位置,也就是说已经有棋子的位置不能重叠

五子棋-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

人工智能课程设计(五子棋)解读

《人工智能导论》课程报告 课题名称:五子棋 姓名: X X 学号:114304xxxx 课题负责人名(学号): X X114304xxxx 同组成员名单(学号、角色): x x1143041325 XXX1143041036 指导教师:张建州 评阅成绩: 评阅意见: 提交报告时间:2014年 1 月 9 日

五子棋 计算机科学与技术专业 学生XXX 指导老师张建州 [摘要]人类之所以不断在进步,是因为我们人类一直不断的在思考,五子棋游戏程序的开发符合人类进步也是促进人类进步的一大动力之一。五子棋游戏程序让人们方便快捷的可以下五子棋,让人们在何时都能通过下棋来提高逻辑思维能力,同时也培养儿童的兴趣以及爱好,让孩子更加聪明。 同时,五子棋游戏程序的开发也使得五子棋这个游戏得到了广泛的推广,让世界各地的人们知道五子棋,玩上五子棋,这已经不是局限。五子棋游戏程序使得越来越多的人喜欢上了五子棋,热爱下五子棋,它是具有很好的带动性的。 关键词:五子棋进步思考

目录 《人工智能导论》课程报告 0 1 引言 (3) 1.1五子棋简介 (3) 1.2 五子棋游戏的发展与现状 (3) 2 研究问题描述 (4) 2.1 问题定义 (4) 2.2 可行性研究 (4) 2.3 需求分析 (5) 2.4 总体设计 (5) 2.5 详细设计 (6) 2.6编码和单元测试 (6) 3 人工智能技术 (6) 4 算法设计 (7) 4.1α-β剪枝算法 (7) 4.2极大极小树 (7) 4.3深度优先搜索(DFS) (8) 4.4静态估值函数 (9) 5 软件设计和实现 (9) 5.1 数据结构定义 (9) 5.2 程序流程图 (17) 6 性能测试 (18) 6.1 程序执行结果 (18) 7 总结 (21) 参考文献 (21)

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) 参考文献.................................................................................................................... 致谢............................................................................................................................ 附录............................................................................................................................

五子棋课程设计实验报告

西南交通大学 程序语言综合课程设计 五子棋游戏 课程《程序语言综合课程设计》 学院信息科学与技术学 专业软件工程 姓名 学号 20119050 日期 2016年月日

目录 第一章课程设计的目的和要求 (3) 1.1 课程设计的目的 (3) 1.2 课程设计的要求 (3) 1.3 课程设计的实验环境 (3) 第二章功能描述 (4) 第三章总体设计 (5) 3.1 功能模块设计 (5) 3.1.1 任务执行流程图 (5) 3.1.2 下棋函数流程图 (6) 3.2 数据结构设计 (7) 3.2.1 定义结构体 (7) 3.2.2 定义数组 (7) 3.2.3 全局变量 (7) 3.3 函数功能描述 (7) 第四章程序实现 (8) 4.1源码分析 (8) 4.2运行结果及界面介绍 (22) 第五章后记 (27)

第一章课程设计的目的和要求 1.1 课程设计的目的 1.加深对C语言数据类型,运算,语句结构及其程序设计的基本方法理解和掌握; 2.熟练掌握流程图的绘制、程序设计文档的书写; 3.通过编写一个完整的程序,一方面可以检查我们这学期的学习情况,为以后的学习打下坚实的基础; 4.熟悉C语言游戏编程,掌握五子棋游戏开发的基本原理,从而为以后的程序开发奠定基础。 1.2 课程设计的要求 1、编写程序代码,调试所写程序使其能够正确运行; 2、能进行基本的五子棋操作,有图形界面,能够用键盘操作; 3、能够实现悔棋、存档和读档等附加功能 1.3 课程设计的实验环境 该课程设计在设计与实验过程中需要在windows XP系统/windows 2000以上系统中进行,程序设计要求在visual C++6.0平台中进行,完成代码的编写、编译、调试、测试等工作。本游戏对计算机硬件和操作系统要求极低,所以在这里只是把自己的电脑硬件参数和系统参数列下: 硬件:Cpu:2.1GHZ,内存,2GB,硬盘:320GB,操作系统:windows xp 软件环境:安装VC++6.0

JAVA五子棋程序设计课程设计

JAVA五子棋程序设计课程设计

计算机与信息工程系 《JAVA程序实训》设计 五子棋游戏 摘要: 计算机人机对弈作为人智能研究的一个重要分支,计算机博弈是检验人工水平的一个重要方面。它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响。 五子棋人机对弈是计算机博弈中的一种。研究其计算机算法,能够让我们看到人工智能的稚形,也有助于我们人脑的开发。五子棋是中国创造的,研究它能够让更多的外国人了解五子棋,这有助于中国优秀文化的推广。 关键词:人工智能,计算人机对弈,五子棋,算法 , java 1.课程设计介绍 1.1课程设计目的 经过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、NetBeans等开发工具的运用,拓宽常见类库的应用。使我们经过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。本次课程设计每人一组,自行设计并实现共功能模块。

1.2课程设计任务 实现五子棋游戏,要求:使用图形用户界面,实现人人对战,人机对战。能够判断输赢,有“开始”按钮,当出现棋盘后,按此按钮进入对战状态。当有胜利者(垂直、水平、对角线连续5子),显示对话框,提示谁(黑还是白)胜利了。若当棋盘满了还无胜利者,显示平局对话框。有“悔棋”按钮,玩家能够点击悔棋,回到上一步。 1.3课程设计论文编写要求 (1)要按照书稿的规格打印与写课程设计论文; (2)论文包括目录、设计思路、具体实现、运行调试与分析讨论、设计体会与小结、参考文献、附录(源代码)等; (3)课程设计论文装订按学校的统一要求完成。 2.系统设计 2.1需求分析 2.1.1性能需求 一款小游戏的确立是建立在各种各样的需求上面的,这种需求往往来自于玩家的实际需求,其中玩家的实际需求最为重要.面对游戏拥有不同知识和理解层面的玩家,游戏制作人对玩家需求的理解程度,在很大程度上决定了此类游戏开发的成败.因此如何更好地的了解,分析,明确玩家需求,而且能够准确,清晰以文档的形式表示给游戏制作人,保证开发过程按照满足玩家需求为目的正确开发方向进行,是每游戏游戏制作人需要面正确问题。 作为五子棋的设计需要考虑到的最基本的需求莫过于人机对战与人人对战功能的实现,当然还有下棋过程中的下棋悔棋功能以及判断游戏的胜负等方面的要求。当然最好是要考虑到界面的友好性,作为一个娱乐软件,还应

java课程设计人机对弈五子棋

《Java程序设计》课程设计报告 学院:理学院 班级: 姓名: 学号: 指导教师: 课设时间: 2015-06-23 至2015-06-25 二O一五年六月二十五日

课程设计(论文)任务书 理学院信息与计算科学专业2012-2班 一、课程设计(论文)题目:人机对弈五子棋游戏 二、课程设计(论文)工作: 自2015 年6 月23 日起至2015 年6 月25日止 三、课程设计(论文) 地点: 5-205 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握软件开发的基本工作流程; (2)巩固JAVA程序设计课程所学的内容; (3)培养学生的计算机思维能力以及合作的精神; (4)培养学生分析、解决问题的能力; (5)提高学生的科技论文写作能力。 2.课程设计的任务及要求 1)基本要求: (1)研究课程设计任务,并进行系统需求分析; (2)对系统进行总体设计,分解系统功能模块,进行任务分配,以实现分工合作;(3)实现各功能模块代码; (4)系统组装,测试、完善系统。 2)创新要求: 在基本要求达到后,可进行创新设计,如改进界面、增加功能或进行代码优化。3)课程设计论文编写要求

(1)要按照书稿的规格打印誊写课程设计论文 (2)论文包括封面、设计任务书(含评语)、摘要、目录、设计内容、设计小结(3)论文装订按学校的统一要求完成 4)参考文献: (1)丁振凡,《JAVA语言程序设计》,清华大学出版社 (2)丁振凡,《JAVA语言程序设计实验指导与习题解答》,清华大学出版社 (3)https://www.360docs.net/doc/8d3842946.html,/ 5)课程设计进度安排 内容天数地点 系统总体设计 1 实验室 软件设计及调试 1 实验室 答辩及撰写报告 1 实验室、图书馆 学生签名: 2015年6月25日 课程设计(论文)评审意见 (1)课程设计过程(20分):优()、良()、中()、一般()、差(); (2)是否完成调试,系统运行效果(30分):优()、良()、中()、一般()、差(); (3)回答问题(20分):优()、良()、中()、一般()、差();(4)课程设计报告(30分):优()、良()、中()、一般()、差(); (5)格式规范性及考勤是否降等级:是()、否() 评阅人:职称:教授 2015年 6月25日

MFC课程设计报告-一个简单的五子棋游戏

设计一个简单的五子棋游戏 一、设计目标与内容 1.了解Windows编程的基础知识,掌握MFC应用程序的基本知 识; 2.基本掌握面向对象程序设计的基本思路和方法; 3.掌握用VC++开发应用程序的的一般步骤和方法; 4.能够利用所学的基本知识, 设计一个简单的五子棋游戏,具 有以下功能:①数据结构的设计;五子棋棋盘的绘制。②两人下棋时,两人下棋算法的设计。③两人下棋时,判断任一方获胜的算法的设计。 二、设计要求 1.用VC++进行编码,实现应用程序的功能。注重编码质量, 代码要有适当的注释; 提交设计报告一份(课程设计任务书、目录、主要的数据结构、设计的基本思路、设计的步骤及主要代码、心得体会、参考文献)。总体设计 运行时效果如下:

图3-1 这个程序只能进行两个人之间的对弈,不能进行人机对弈,由于时间和个人能力的原因所以人机对弈的算法就没有写出。同时程序中也存在着很多漏洞,但基本的功能都已经实现,还有待继续改进。 详细设计 新建工程game_wzq

选择单文档应用程序,在Step 4 of 6中先中Windows Sockets 复选框。如下图: 图3-2 资源编辑 黑白位图Bitmap以表示棋盘上面的棋子: IDB_BLACK DB_WHITE 黑白鼠标Cursor以替换当前鼠标: IDC_CURSOR1 黑棋子

IDC_CURSOR2 白棋子 黑白图标Icon以显示在状态栏供以提示 IDI_BLACK IDI_WHITE 菜单以供操作: 开始: ID_START 保存: ID_SAVE 打开: ID_OPEN 如下图所示: 图3-3 变量函数 首先,为了实现状态栏的应用,我们必须更改它的变量:

《C++语言程序设计》课程设计报告--五子棋

C++语言程序设计 课程设计报告 课程:C++语言程序设计题目:五子棋 年级: 专业: 学号: 姓名: 指导教师: 江苏师范大学数学与统计学院

【摘要】 五子棋是我国古代的、传统的黑白棋种之一。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。本游戏是以C++语言作为开发工具,运行环境Visual C++ 6.0,通过构造函数绘制棋谱,以及落子函数、判断函数,实现双人对弈的功能。 【关键词】五子棋、游戏、人人对战、C++ 【引言】 五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“連珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。 五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。 本游戏是以C++语言作为开发工具,运行环境Visual C++ 6.0,通过构造函数绘制棋谱,以及落子函数、判断函数,实现双人对弈的功能。 【设计思路】 第一步:绘制棋谱 第二步:对战双方落子 第三步:判断是否有五子连珠 第四步:重复第一、二、三步直至出现五子连珠 【设计过程】 通过构造函数实现棋盘,编写落子函数实现玩家落子,通过判断函数判断是否有五子连珠的结果。 【设计结果】 图1-1 初始画面

java+五子棋+课程设计报告 (2)

课程设计(论文)任务书 软件学院软件工程+电子商务专业2007-2班 一、课程设计(论文)题目多用户五子棋游戏 二、课程设计(论文)工作自2009年6月15日起至2009年6月19 日止。 三、课程设计(论文) 地点: 创新大楼310 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)通过课程设计把课堂上讲的内容融会贯通,学会设计程序、开发应用软件、开发系统软件等各项工作。 (2)通过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面向对象中的继承和多态的概念要理解、会使用,在程序中提高代码的重用性,使设计的程序结构清晰、易于维护。 2.课程设计的任务及要求 1)基本要求: 实现一个简单的多用户五子棋的游戏程序,包括如下两个界面 (1)选择对弈桌及角色(执黑、执白、观看)。 (2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);发言及显示区;用户列表区;棋盘绘制区。 2)创新要求: 在基本要求达到后,可进行创新设计,如改善算法性能、友好的人机界面。 3)课程设计论文编写要求 (1)要按照书稿的规格打印与写课程设计论文 (2)论文包括目录、设计思路、具体实现、运行调试与分析讨论、设计体会与小结、参考文献、附录(源代码)等 (3)课程设计论文装订按学校的统一要求完成 4)答辩与评分标准:

(1)完成基本算法设计:20分; (2)完成设计过程:40分; (3)完成调试:20分; (4)回答问题:20分。 5)参考文献: [1]吴其庆编著.Java程序设计实例教程.北京:冶金工业出版社 [2] 柳西玲.许斌编著.Java语言应用开发基础.北京:清华大学出版社 [3] (美)CayS.Horsttmann Gary Cornell JAVA核心技术卷i:基础知识(原书第七版):机械工业出版社 [4]丁振凡Java 语言实用教程:北京邮电大学出版社 [5]https://www.360docs.net/doc/8d3842946.html, 6)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 编码与调试 2.5实验室 撰写论文 1.5图书馆、实验室 学生签名: 2009年6 月15 日 课程设计(论文)评审意见 (1)完成基本算法(20分):优()、良()、中()、一般()、差();(2)完成调试(20分):优()、良()、中()、一般()、差();(3)创新设计(20分):优()、良()、中()、一般()、差();(4)设计分析(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是( )、否() 评阅人:职称: 2009年6月21 日

五子棋JAVA语言毕业课程设计报告

(此文档为word格式,下载后您可任意编辑修改!) 《Java语言程序设计》课程设计报告 学院:信息科学技术学院 班级:软件技术2班 姓名:王更新 学号: 指导教师:郭韶升 课设时间:至 二O一四年三月二十六日

目录 一、设计要求 (2) 二、设计步骤 (2) 2.1程序流程图 (2) 2.2程序的功能分配 (3) 三、设计正文 (6) 3.1创建棋盘类 (6) 3.2判断输赢功能实现 (9) 3.3测试结果 (9) 四、心得体会 (12) 五、参考文献 (12) 附录(源代码) (13) 一、课程设计要求 设计一个15╳15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能:

1.选择落子的先后顺序 2.重置棋盘 3.刷新重新开始 4.退出提示 并且规定退出者判为负,但退出过程中要有提示。以防不小心点错了。最后判断某一方是否为五子连珠。 实现一个简单的多用户五子棋的游戏程序,包括如下两个界面 (1)选择对弈桌(执黑、执白)。 (2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负); 二、设计步骤 2.1程序流程图 2.2 程序的功能分配 a. 棋盘的绘制 public void draw_qipan(Graphics G) 画棋盘 15*15{ G.setColor(Color.lightGray); G.fill3DRect(0,true); G.setColor(Color.black); for(int i=1;i<16;i++){ G.drawLine(20,20*i*i); G.drawLine(20*i,20,20*i,300);

五子棋游戏__课程设计报告(含源代码可以运行)

《软件基础》大作业 项目名称:五子棋游戏 学号:201046820510 201046820605 姓名:校建林 朱颖 完成时间:2011年11月28日指导教师:鲁可

目录 一需求分析 (1) 1.1开发背景 (1) 1.2项目目标五子棋与游戏开发成员和具体日期完成任务以及任务的具体分配. . . . . . . . . . . . . . . . . . . . 1 1.3运行环境...初始化. (3) 1.4项目任务书主循环控制模块 (3) 1.5玩家下子 (3) 1.6盘面分析填写棋型表 (3) 1.7对方下子 (4) 1.8胜负判断 (4) 二技术线路 (4) 2.1采用的软件及开发平台是什么 2.2项目的总体方案—包括模块及模块间的联系、信息流、数据流等 2.3项目的详细设计—包括模块的功能、数据结构及算法等 2.1技术线路模块图 (4) 2.2技术线路说明 (5) 三工程进度 第三章系统设计 (5) 3.1流程图 (6) 3.2流程图说明 (6) 四程序测试分析 (7) 4.1阶段性测试 4.2总体测试 五个人总结 (9) 附录源代码 (10)

五子棋游戏 第一章需求分析 1.1开发背景 软件需求分析是软件开发周期的第一个阶段,也是关系到软件开发成败的关键一步。对于任何一个软件而言,需求分析工作都是至关重要的一步。只有通过软件需求分析,才能把软件的功能和性能由总体的概念性描述转化为具体的规格说明,进而建立软件开发的基础。实践表明,需求分析工作进行得好坏,在很大程度上决定了软件开发的成败。 软件需求分析的任务是:让用户和开发者共同明确将要开发的是一个什么样的软件。具体而言,就是通过对问题及其环境的理解、分析和综合,建立逻辑模型,完成新软件的逻辑方案设计。 基于本游戏,首先得为整个棋盘建立一张表格用以记录棋子信息,我们使用一个15*15的二维数组Table[15][15](15*15是五子棋棋盘的大小),数组的每一个元素对应棋盘上的一个交叉点,用‘0’表示空位、‘1’代表己方的子、‘2’代表对方的子;这张表也是今后分析的基础。在此之后还要为两个玩家双方各建立一张棋型表Computer[15][15][4]和Player[15][15][4],用来存放棋型数据。 1.2 项目目标五子棋与游戏开发具体任务完成日期以及任务的具体分配 五子棋游戏开发成员:校建林、朱颖。 五子棋游戏开发具体的任务步骤: 1.需求分析 内容包括:总体分析、五子棋与游戏开发成员和具体任务完成日期以及任务的具体分配、初始化、主循环控制模块、玩家下子、盘面分析填写棋型表、对方下子、胜负判断。 2.技术线路 内容包括:采用的软件及开发平台是什么。 项目的总体方案—包括模块及模块间的联系、信息流、数据流等。

基于JAVA的五子棋游戏设计本科毕业设计

XX大学本科毕业设计 基于JAVA的五子棋游戏设计

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

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

五子棋JAVA语言课程设计报告

《Java语言程序设计》课程设计报告 学院:信息科学技术学院 班级:软件技术2班 姓名:王更新 学号: 1108900505 指导教师:郭韶升 课设时间: 2014-03-17 至2014-03-26 二O一四年三月二十六日

目录 一、设计要求 (2) 二、设计步骤 (2) 2.1程序流程图 (2) 2.2程序的功能分配 (3) 三、设计正文 (6) 3.1创建棋盘类 (6) 3.2判断输赢功能实现 (9) 3.3测试结果 (9) 四、心得体会 (12) 五、参考文献 (12) 附录(源代码) (13)

一、课程设计要求 设计一个15╳15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能: 1.选择落子的先后顺序 2.重置棋盘 3.刷新重新开始 4.退出提示 并且规定退出者判为负,但退出过程中要有提示。以防不小心点错了。 最后判断某一方是否为五子连珠。 实现一个简单的多用户五子棋的游戏程序,包括如下两个界面 (1)选择对弈桌(执黑、执白)。 (2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负); 二、设计步骤 2.1程序流程图

2.2 程序的功能分配 a. 棋盘的绘制 public void draw_qipan(Graphics G) //画棋盘 15*15{ G.setColor(Color.lightGray); G.fill3DRect(10,10,300,300,true); G.setColor(Color.black); for(int i=1;i<16;i++){ G.drawLine(20,20*i,300,20*i); G.drawLine(20*i,20,20*i,300); } } b. 添加按钮 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=e.getX(); y1=e.getY(); if (e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300) { return; } if (x1%20>10) { x1+=10; } if(y1%20>10) { y1+=10; } x1=x1/20*20; y1=y1/20*20; set_Qizi(x1,y1); m*=(-1); }

相关文档
最新文档