当前位置:文档之家› 五子棋论文

五子棋论文

五子棋论文
五子棋论文

基于J2ME五子棋手机游戏开发

摘要基于J2ME 技术,设计并开发了一款五子棋手机游戏,程序实验取用Java 语言,便于游戏软件的移植,采用手机模拟器进行模拟测试,便于检查游戏功能的实现。在构建了完善的游戏思维的基础上,划分功能模块,实现整套游戏的开发。整个程序完成的功能是一个人机对战的五子棋游戏,游戏的重点与难点在于计算机人工智能算法,总的来说就是根据棋型选择最优的点下子。

关键词J2ME;手机游戏;人工智能

ABSTRACT Based on J2ME technology, we designed and developed a mobile game backgammon, procedures, experimental access to java language, to facilitate the transplant games, mobile simulator used to simulate the test, easy to check the function of the realization of the game. Construction of a perfect game in mind, based on division of function modules, to achieve complete game development. Complete the whole process is the function of a human-computer play against a backgammon game, the game is important and difficult computer AI algorithms, in general is to choose the best according to point type chess erupted..

KEY WORDS J2ME;Games of Mobile;Artificial Intelligence

目录

1. 前言 (1)

2.相关介绍 (2)

2.1 J2ME简介 (2)

2.2 Configuration和CLDC (2)

2.3 手机游戏特点 (3)

3.棋类游戏的相关探讨 (4)

3.1 逻辑层和表现层的分离 (4)

3.2 自适应尺寸和可移植性 (4)

4.五子棋游戏的架构 (5)

4.1 事件驱动游戏 (5)

4.2 游戏的类结构 (5)

4.3 游戏的流程 (7)

4.4 五子棋的人工智能 (8)

4.4.1 五子棋的获胜组合 (8)

4.4.2 设计获胜棋型 (9)

5.游戏设计与实现 (9)

5.1 MIDlet简介 (9)

5.1.1 MIDlet生命周期 (10)

5.1.3 FIRMIDlet类代码片断 (12)

5.2 游戏介绍表单的实现 (12)

5.3 游戏设置表单的实现 (13)

5.3.1 Gauge与ChoiceGroup组件介绍 (13)

5.3.2 Option类设计 (14)

5.3.3 Option类代码片断 (15)

5.4 棋子Dot类的实现 (16)

5.5 对战逻辑FIRlogic类的实现 (17)

5.5.1 落子与悔棋 (17)

5.5.2 棋型检测的实现 (17)

5.5.3 FIRlogic类代码片断 (19)

5.6 游戏画布 (20)

5.6.1 Canvas类介绍 (20)

5.6.2 FIRCanvas类实现 (21)

5.6.3 用户输入 (23)

6. 结束语 (24)

参考文献 (25)

致谢.............................................................................................. 错误!未定义书签。

基于J2ME的五子棋手机游戏开发

1.前言

随着手机网络的日益进化,手机硬件性能的不断提升,手机功能越来越多, 人们对于掌上数字娱乐的追求与日俱增,随着越来越多的智能手机的上市,手机的功能已经不再局限于收发短信、接听电话等人们的基本通信需求,手机的游戏功能得以彰显。对于多媒体的支持,使得在手机上开发游戏应用程序更加得心应手,而且游戏的表现力也得到了极大的发挥。随着计算机软件技术的不断发展,嵌入手机等移动设备的软件开发逐渐出现了新的突破。Java 技术的兴起,解决了移动设备软件开发固有的一些弊端,也使高级手机游戏的开发成为现实,其良好的跨平台特性和面向对象的优势在嵌入移动设备的软件开发中显示出了巨大的威力。而J2ME(Java 2 Micro Edition) 的诞生给高级手机游戏的开发又带来了新的生机。J2ME 技术用于手机游戏开发,不但便于查看游戏运行过程中内存的占用量和程序的每一部分代码消耗了多少处理器时间,而且可以不断地优化代码,使用J2ME 和MIDP 进行手机游戏开发已越来越受到人们的关注。

忙碌的人们,在等车时、在公交车上、在偶尔的闲暇时间,掏出口袋中的手机,玩起手机游戏,短暂的娱乐使紧张的神经得以放松,从而以更加良好的状态投入到学习工作中去。

本游戏主要的内容是人机对战,先达到五子连株者为胜,棋盘大小范围是10x10至20x20,游戏难度分为三等级(初阶、中阶和高阶),玩家自行设置。玩家使用四个方向键的上(2)、下(8)、左(4)、右(6)来移动落子点位,移动到空白位置使用确定键(5)来落子,游戏过程中允许悔棋(最多连续悔5步)。

整个程序完成的功能是一个人机对战的五子棋游戏,游戏重点与难点在于如何设计一套快速有效的人工智能算法,尽可能增加游戏的可玩性。本程序取用根据盘面形势,判断在某个位置落子后会形成什么棋型(如“五连”、“冲四”、“活三”等),然后通览全盘选出最佳落子点的方法。

2.相关介绍

本次毕业设计采用了J2ME技术,Java是目前占据优势的手机软件开发技术,并且它是一种开放平台,这意味着可以开发一组代码并使其在众多的移动设备上运行。下面将述J2ME的一些相关知识。

2.1 J2ME简介

Sun公司将J2ME(java 2 Micro Edition,Java2微型版)定义为“一种以广泛的消费性产品为目标、高度优化的Java运行时环境”。J2ME是为了那些使用有限能源、有限网络连接(常常是无线连接),以及有限图形用户界面的设备而开发的。

从1999年6月在Java One Developer Conference上声明之后,J2ME便进入了小型设备开发的行列。当时,由于分布式编程深受Java开发者团体的欢迎,大多数与会者都只对J2EE的功能感兴趣。富有戏剧性的是,在随后的两年里,开发者意识到了运行Java的小型组件同样具有很高的价值,J2ME逐步流行。

J2ME不只是一个单独的技术规范,而是一系列技术规范的总称。这些规范定义了Java技术在资源限制的设备中的表现形式,而且新规范在不断制订当中,并且这些规范的制订是完全向公众开放的。目前所说的手机游戏其实是其中规范的一种,即MIDP(移动信息设备规范),该规范应用最为普通,因此习惯上也被人们笼统地称为J2ME技术。

J2ME主要应用于手机等小型嵌入式设备,这些设备由不同的厂商设计生产,功千差万别。J2ME在应用于这些设备的同时也保留了Java的传统特性,即任何时间和任何地点的代码都具有可移值性、部署灵活性、安全的网络传输性,以及代码稳定性。

2.2 Configuration和CLDC

J2ME 平台是由配置(Configuration) 和简表( Pro2 file) 构成的。配置是

提供给最大范围设备使用的最小类库集合,在配置中同时包含Java 虚拟机。简表是针对一系列设备提供的开发包集合。在J2ME 中还有一个重要的概念是可选包(Optional Package) ,它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能J2ME 中制定了JSR82 (BluetoothAPI) 提供了对蓝牙的支持。

目前,J2ME 中有2 个最主要的配置, 分别是Connected Limited Devices Configuration (CLDC) 和Con2nected Devices Configuration (CDC) 。

CLDC 是两个配置中较小的一个,为具有间断性联网能力、较慢的处理器和有限内存的设备设计的。这些设备包括移动电话、双工呼叫器和入门级的PDA ,它们通常具有16 位或32 位的CPU、128KB~512KB 可用于Java 平台实现和相关应用程序的内存。

CDC 是为处理能力较强、内存空间更大、联网能力更出色的设备设计的。这些设备包括电视机顶盒、车载娱乐系统、高端PDA 等。CDC 包含一个具有完备特性的Java 虚拟机,比CLDC 更大的Java SE的子集。CDC 的目标设备通常具有32 位或64 位的处理器,2MB 以上的可用于Java 平台实现和相关应用程序的内存空间。

2.3 手机游戏特点

一个手机游戏应该具有以下特征:易于学习:既然手机游戏面向的是普通消费者而不是计算机专家,那么他们不可能深入的学习游戏技巧。消费者不会花几个小时去研究一个3 元的手动操作的游戏。保持游戏的简单是最基本的要求。

可中断性: 多任务处理是手机生活方式的基本特征。手机用户常常在任务(如等一个电子邮件或者等车) 之间有一小段时间。而游戏、日历管理、通讯和工作数据访问使用的是同一个设备。所以一个好的手机游戏应该提供短时间的娱乐功能,并且允许用户在游戏和工作模式之间顺利切换。

基于订阅:手机游戏的盈利成功取决于他们巨大的使用量。一开始开发和设计每个游戏都是昂贵的。如果一个手机游戏开发者要赢利的话,重要的

是:同一个游戏引擎,多个标题,基本的故事情节类似。基于订阅的游戏是不断产

生收入的最好方法。

丰富的社会交互:不管一个游戏设计得多好,只要玩家找到了它的根本模式或者玩完了所有的游戏路径很快就会厌烦这个游戏。对于一个基于订阅的游戏,重要的是与别的玩家合作以增强所玩游戏的智力和随机性。在今天纷繁复杂的多玩家游戏中具有丰富社会交互的游戏证明是成功的。

3.棋类游戏的相关探讨

3.1 逻辑层和表现层的分离

棋类游戏是移动设置比较擅长表现的游戏,相对于动作类游戏的快节奏,棋类游戏的特点就是玩起来速度慢,比较优雅,主要来培养玩家在某方面的思考和判断能力。

棋类游戏的开发常常带有人工智能算法,因此,需要注重逻辑层和表现层的分离。逻辑层处理所有的判断、推算,可采用各种比较复杂的算法,而表现层则只管与玩家交互。

3.2 自适应尺寸和可移植性

MIDP设备可能有不同的屏幕尺寸、不同的键盘布局以及不同的可用API。在设计游戏时必须考虑这些不同点,以便获得移值性最好的游戏软件。

游戏中所使用的棋盘大小是用户设定的,尺寸也并非固定,而是应用程序从系统获得屏幕的尺寸,并进行计算得出,这些可以避免在屏幕上绘画时对坐标使

用的硬代码。

使用Canvas类的getHeight和getWidth方法能够完成上述任务。此外,一个良好的做法是让游戏既支持键盘操作也支持指针操作,这通常不需要增加太多的代码,但可以提高游戏的可移值性。

4.五子棋游戏的架构

五子棋游戏的架构涉及游戏驱动、类结构和流程的初步设计,由于人机对战五子棋采用了人工智能算法,因此,还对获胜棋型和攻守策略进行了探讨。

4.1 事件驱动游戏

棋类游戏通常具备两个重要特性,首先是对战双方轮流落子,其次是落子间隔通常是不确定的,尤其是对战后期,可能每一步棋都需要经过深思熟虑,无论是人方或是计算机方,都无法对间隔时间有实现的预期。

基于以上两个特性,本游戏摒弃了大多数游戏采用的线程或定时器驱动游戏的方法,而采用事件驱动的方法,即玩家的键盘或触摸笔触发游戏的下一步动作。

事件驱动大大减少了不必要的工作量,只有玩家发出消息时,计算机才启动运算,而在玩家思考期间,计算机不做任何运算和重绘操作。事件驱动的游戏循环如图3.1:

4.2 游戏的类结构

整个游戏共由六个类组成,如图3.2所示。游戏的FIRMIDlet类负责保持display对象,并且提供各屏幕之间的切换。整个程序包含四个屏幕:游戏主屏

幕表单,实际玩家进行游戏的FIRCanvas ,提供某些关于游戏选项的Option 表单,以及一个用来显示相关信息的About 表单。此外,Dot 和FIRLogic 类是分别用来构造游戏棋子和算法逻辑的。

开始

玩家落子

判定落子

合法性

判定游戏是

否结束

计算机落子

判定游戏是

否结束结束N

N

Y Y Y

N

图4.1 事件驱动游戏循环

Canvas 画布FIRCanvas FIRLogic 逻辑Dot

棋子FIRMIDlet 主类

MIDlet

About 关于表单

About 设置表单

图4.2 类结构

4.3 游戏的流程

游戏启动时,FIRMIDlet 对象先显示游戏主屏,在屏幕下方一侧是退出软键,另一侧是用软键构成的菜单,菜单元素主要有“设置”和“关于”选项。当玩家选择“设置”软键时,则显示游戏参数设置表单;当玩家选择“开局”软键时,则显示游戏对战主屏;当玩家选择“关于”软键时,则显示游戏介绍表单。

玩家进入游戏参数设置表单,当玩家按下“确定”软键时,则确认当前游戏参数,返回游戏主屏;当玩家按下“取消”软键时,则放弃此次对游戏的修改,直接返回游戏主屏幕。

玩家进入游戏对战画布,对战中画布有两个软键,当玩家按下“退出”软键时,则退出游戏;当玩家按下“悔棋”软键时,则进行悔棋操作;当游戏结束时,“悔棋”软键被换成“重玩”软键。

整个游戏的界面切换流程图如图3.3所示。

图4.3 游戏的界面切换游戏图

4.4 五子棋的人工智能

人工智能也就是所谓的AI(Artificial Intelligence),它是一门很抽象的技术(或者也可以称之为艺术),游戏中的AI可以在遵循一定规则的情况下,依程序设计者本身的思考逻辑制作。

可以这样认为,人工智能的核心是使计算机具有自动处理事件的能力,而设计者的所有研究也应该围绕着这一方向进行。

最常见的AI游戏就是棋盘式游戏。在这类游戏中,通常的策略类AI程序都是使计算机根据目前状况计算所有可走的棋与可能的获胜状况,并计算当前计算机可走棋步的获胜分数或者玩家可走棋步的获胜分数,然后再决定出一个最佳法。下面介绍一下五子棋的AI构想。

4.4.1 五子棋的获胜组合

在一场五子棋的游戏中,计算机必须要知道有哪些获胜组合,因此我们必须求得获胜组合的总数。现在假定当前的棋盘为15x15:

1)计算水平方向的获胜组合数,每一列的获胜组合是11,共15列,所以

水平方向的获胜组合数为:11x15=165。

2)计算垂直方向的获胜组合数,每一行的获胜组合是11,共15列,所以

垂直方向的获胜组合数为:11x15=165。

3)计算正对角线方向的获胜组合数,正对角线上的获胜组合总数为11+

(10+9+8+7+6+5+4+3+2+1)x2=121。

4)计算反对角线方向的获胜组合数,反对角线上的获胜组合总数为11+

(10+9+8+7+6+5+4+3+2+1)x2=121。

这样所有的获胜组合数为:165+165+121+121=572。

4.4.2 设计获胜棋型

我们已经计算出了一个15x15的五子棋盘会有572种获胜方式,这样我们可以利用数组建立一些常规棋型,棋型主要作用是:判断是否有任何一方获胜;根据当前格局判断最可能的落子方式。

然而在现实中,人们总结了很多能够构成获胜棋型的“前奏”,它们是通向胜利的捷径,如“冲四”、“活三”、“双三”等等。

5.游戏设计与实现

5.1 MIDlet简介

MIDlet是用J2ME APIs开发的程序,用于移动计算环境中。MIDlet需要一个特殊的运行环境,这个环境主要包含一个应用程序管理器,它为在移动设备上选择和运行MIDlet提供方便。

5.1.1 MIDlet 生命周期

所有MIDlet 都继承自java.microedition.midlet.MIDlet ,该类包含了MIDP 平台控制应用程序执行过程的方法。

当MIDlet 被初始化后就进入它的生命周期,该生命周期包含三种状态:激活态(Active )、暂停态(Paused )和销毁态(Destroyed ),这三种状态的控制完全由JAM 来完成。当出现状态迁移时,JAM 会自动调用相应的方法,MIDlet 状态迁移图如4.1.1所示。

JAM 初始化

MIDlet

暂停状态

(Paused)

激活状态

(Active)调用startApp 方法调用ParseApp 方法

销毁状态(Destroyed)

调用destroyApp 方法

调用destroyApp 方法

图5.1.1 MIDlet 状态迁移触发的方法调用

JAM 加载MIDlet 后,首先进行初始化的工作,然后将状态设置暂停态,如果在初始化过程中没有出现异常,那么将MIDlet 的状态设置为激活状态,否则将MIDlet 的状态设置为销毁状态。在每次状态转换的时候都要高用相应的方法。

5.1.2 主类FIRMIDlet类的实现

FIRMIDlet类继承了MIDlet类,负责程序的启动和屏幕切换,该类用高级界面中的软键来实现游戏菜单,在不同的手机上,软键可能有不同的分布。FIRMIDlet类的UML图如图4.1.2(1)所示,主界面如图4.1.2(2)与4.1.2(3)所示。

图5.1.2 FIRMIDlet类的UML图

图5.1.2 (2) 初屏图5.1.2 (3) 按下菜单后的屏幕

5.1.3 FIRMIDlet类代码片断

//构建主屏表单

public FIRMIDlet() {

display=Display.getDisplay(this);

form=new Form(null);

try{

imgSplash=Image.createImage("/theme.png");//加载屏幕图片 }

catch(IOException e){

imgSplash=Image.createImage(1, 1);

}

form.append(imgSplash);

CMD_EXIT=new Command("退出",7,1); //创建退出软键

CMD_GO=new Command("开局",4,2); //创建开局软键

CMD_OPTION=new Command("设置",1,3);//创建设置软键

CMD_ABOUT=new Command("关于",5,3);//创建关于软键

form.addCommand(CMD_EXIT); //将退出软键添加到主表单

form.addCommand(CMD_GO); //将开局软键添加到主表单

form.addCommand(CMD_OPTION); //将设置软键添加到主表单

form.addCommand(CMD_ABOUT); //将关于软键添加到主表单

form.setCommandListener(this); //监听主表单软键事件

myCanvas=new FIRCanvas(this); //创建画布

options=new Options(this); //创建设置表单

about=new About(this); //创建关于表单

}

5.2 游戏介绍表单的实现

Abou t是游戏介绍表单类,主要是向玩家阐述五子棋的一些信息。其UML图如4.2(1)所示,游戏截图如4.2(2)所示。

图5.2(1) About类的UML图

图5.2(2) 关于表单界面

5.3 游戏设置表单的实现

游戏设置表单Option类用来对游戏的参数进行设置,包括棋盘大小,游戏难度,是否先手,过程中使用了Gauge和ChoiceGroup两种高级用户界面组件。

5.3.1 Gauge与ChoiceGroup组件介绍

Gauge组件实现了一个图形标尺,通常被用来表示一个过程的进展情况或者一些系列数字的选择情况。Gauge的构造方法根据指定的标签、交互模式、最大值、初始值生成一个新的Gauge对象,原型如下:

Gauge(String label,Boolean interactive,int maxValue,int initialValue)

●Gauge构造方法有4个参数:label、interactive、maxValue、initialValue

●参数label用作label对象的标签,设置为null表示标签为空

●参数interactive是一个boolean变量,表示这个Gauge对象的交互模

式,设置为true表示交互模式,即用户可以改变Gauge对象的值:如

果设置为flase,则表示非交互模式,即用户不可以改变Gauge的值。

●参数maxValue是一个大于0的整数,表示Gauge对象的最大值(Gauge值的范

围为[0,maxValue])。这个值必须大于0,否则会抛出IllegaArgumentException。

●参数initialValue是一个整数值,表示Gauge对象的初始值,它的范围是[0,

maxValue]。如果initialValue小于0,则Gauge对象的初始值被设置为0;

如果initialValue大于maxValue,则被设置为maxValue。

ChoiceGroup组件用来构造选择框,棋构造方法如下:

ChoiceGroup(String label,int choiceType)

该构造方法有两个参数,其中参数label用来设置此选项组的标签。Label 可以设置为null,表示此Item对象的标签为空白。构造完成后,还可以使用setLabel方法和getLabel方法来分别设置和获取对象的标签。参数choiceType 用来设置ChoiceGroup的类型,ChoiceGroup类继承了Choise接口的三种类型:

●EXCLUSIVE,值为1,一次只有一个元素被选择。

●MULTIPLE,值为2,一次可以有多个元素被选择。

●IMPLICIT,值为3,类似软键菜单或者按钮,当被选择时,立即触发

Command事件。

●POPUP,值为4,弹出式菜单,当被选择时,弹出选项。

5.3.2 Option类设计

该类实现游戏参数的设置,其UML图如图4.3.2(1)所示,游戏截图如4.3.2(2)所示。

图5.3.2 (1) Option类的UML图

图5.3.2 (2) 设置表单界面

5.3.3 Option类代码片断

//保存记录的方法

public void saveOptions(){

try{

RecordStore rs=RecordStore.openRecordStore("Options", true);//打开记录,如果没有则创建

byte bs[]=new byte[3];

bs[0]=(byte)boardSize; //棋盘大小

bs[1]=(byte)(isComputerFirst?1:0); //先手

bs[2]=(byte)degree; //难度

if(rs.getNumRecords()>0) //如果有记录则ID为1的记录内容为当前参数

rs.setRecord(1,bs,0,3);

else

rs.addRecord(bs,0,3); //如果不存在记录,则添加新记录,内容为当前的参数

rs.closeRecordStore(); //关闭记录

}

catch(RecordStoreException e){

}

}

5.4 棋子Dot类的实现

Dot类代表了现实中的棋子,该类主要和于记录棋子的位置和检查落子的合法性(是否越界)。五子棋是一个二维棋类游戏,所以首先想到的是定义一个Dot 类来表示棋子。考虑到移动设备的资源有限,以及尽可能减少系统资源占用,程序不在下每一步棋时生成一个对象,而是在游戏进行时,玩家或者计算机每下一步棋,在数组相应位置生成该棋子的对象,而将已经下过的棋子保存到数组中随时检索,这样可以避免过多的棋子对象占用系统内存。Dot类的UML图如4.4所示。

图5.4 Dot类的UML图

5.5 对战逻辑FIRlogic类的实现

FIRLogic类是整个游戏的逻辑类,包含了人工智能算法,这些算法主要体现在对各种棋型的检测并计算一个最佳的落子点。除此之外,该类还处理双方落子功能和悔棋功能,判断是否游戏结束,谁是胜利者。

5.5.1 落子与悔棋

当对战某一方在棋盘上落子时,就将棋盘数组的相应位置设置为该方代码(计算机方为1,玩家方为2)。

双方落子后,程序人使用一个Dot类棋子对象来记录最后一步棋的位置,当玩家下了一步棋后需要将上一步重新绘制,以消除棋子上的引导框。此外,还使用堆栈来存储最近的10步棋,以便玩家悔棋。

为了实现悔棋功能,该程序采用了堆栈来存储最近的棋子,当玩家取用悔棋功能时,程序就会将堆栈里的头两步棋的对象移出,这时本来位于第三的棋子对象就变成了栈顶,然后将栈顶的棋子设置为最后一步,并重新绘制棋盘。

5.5.2 棋型检测的实现

connectedIn1D方法用于检测棋盘上任意一点在指定方向上的同类棋子相

连个数,传入落子方标志(区分计算机还是玩家)、检测位置的行列坐标和检测方向,返回在该方向上相连棋子的个数,若检测到对方棋子或者空白棋面则停止检测。

connectedIn8D方法是基于connectedIn1D方法的一个升级方法,是对8个方向都进行检测,最终返回一个整型的数组,后面用cd[i]表示。

expandedIn1D方法跟connectedIn1D方法相似,不同的是expandedIn1D方法是检测自己棋子以及空白棋子(最多连续四空白点)的个数,当遇上敌方棋子,

五子棋报告-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()函数进行四个方向的检查,检查是否有五子连珠。

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

人工智能专家系统论 文 题目五子棋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

五子棋java设计文档

安阳工学院 JA V A课程综合项目报告 项目题目:五子棋 专业班级:12网工专升本 学生姓名:阮营营 学生学号:201203060042 指导教师姓名:许研 2012年12月 安阳工学院计算机学院制

目录 一、系统目标 (2) 二、系统设计思路 (2) 三、系统详细设计 (2) 四、系统实现 (9) 五、系统设计总结 (12) 六、参考文献 (12)

一、系统目标 1、主要是介绍开发五子棋的整个过程,体现流程设计与类设计的基本方法,示范了数组的使用,使用了分支结构与循环结构的流程控制 2、通过课程设计把课堂上讲的内容融会贯通,学会设计程序、开发应软件、开发系统软件等各项工作。 3、通过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面向对象中的继承和多态的概念要理解、会使用,在程序中提高代码的重用性,使设计的程序结构清晰、易于维护。 二、系统设计思路 1、获取棋盘设计一个11╳11围棋棋盘,由两玩家交替进行对战,并可以实现以下功能。五子棋的规则为: 2、下棋方法两人分别执黑白两色棋子。轮流在棋盘上选择一个无子的交叉点落子,无子的交叉点又被称为空点。 3、输赢判断每次下完一颗棋子,就通过程序从横、竖、斜各个方向扫描棋盘,如果在某个方向中,有同种颜色的棋子达到五连子,则此颜色的玩家为赢。如果没有相同颜色的棋子达到五连子,则继续游戏。 三、系统详细设计 3.1程序流程图

3.2创建棋盘类,绘制棋盘的样式 main方法创建了ChessFrame类的一个实例对象,并启动屏幕显示显示该实例对象。 public static void main(String argc[]) { myframe f = new myframe(); } 构造五子棋的主窗体: class myframe extends Frame implements WindowListener { mypanel panel; myframe() { setLayout(null); panel = new mypanel(); add(panel); panel.setBounds(0, 23, 360, 360);

五子棋(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.这两个强大的游戏制作组起到了巨大的带动作用,还有中国的洛河工作室在国内也起到了巨大作用,他们让很多很多人喜欢上了游戏软件,打开了这个市场。如今游戏软件产业已经受到了广泛的关注,它年轻有潜力而且吸引人,让人们日益丰富的生活需求得以满足。 五子棋游戏更是吸引着不同年龄段的人群,无论男女老少都可以玩,都喜欢玩,而当前微型计算机已经是在广大人群中流行着,用电脑来下五子棋更是一种时尚。五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。在上古的神话传说中有“女娲造人,伏羲做棋”一说,《增山海经》中记载:“休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。”李

基于Java的“网络五子棋”游戏的设计和实现(含源文件)

基于Java的“网络五子棋”游戏的设计和实现——网络版客户端 学生:xxx 指导教师:xx 内容摘要:目前,随着计算机网络的发展,以计算机技术和网络技术为核心的现代网络技术已经在现实生活和生产中得到了广泛的使用,休闲类网络游戏集趣味性,娱乐性,互动性和益智性于一体,已经成为多数人群的休闲方式,也为多数人所喜好。 本设计收集了关于JAVA基础的书籍,着重收录了关于SOCKET编程的内容,找到了五子棋概述和规则的资料,查阅了网络通信技术的相关论文,同时也参考了很多关于五子棋实现的程序资料以及关于JAVA开发工具的介绍的文档。在期间,我学习了多线程技术、双缓冲技术、数据传输技术、SOCKET编程技术,研究了网络通信原理、JAVA编写原理等一系列的原理。开发了网络五子棋网络通信代码,实现了网络聊天、数据传输、网络通信、界面组织如:棋盘、建立服务器、连接到服务器、系统设置、我要参赛等功能。通过对以上技术的学习和研究,利用SOCKET编程,能服务器与客户端之间的连接,利用多线程技术完成了服务器端与客户端之间的数据传输、网络通信,使得两个客户端能够同步的进行处理。在加载图片以及绘制棋盘方面,采用双缓冲技术消除屏幕的闪烁现象。达到了预期的效果。 关键词: 多线程 SOCKET 客户端网络通信

Design and realization of the web gobang game based on java——client module Abstract: At present, with the development of computer network, computer technology and network technology as the core of modern network technology has in real life and production has been widely used. Recreational type of network games consists of interesting, entertaining, interactivity and beneficial intelligence. It has become a way of entertainment to many people, and has been loved. Much of the information collected in this design,such as many books based on the JAVA, focus on the contents of SOCKET programming, Find information about the web gobang game, Access to the relevant papers, Reference to a lot of program information on achieving The web gobang game and introduction to JAVA development tools on the document. In the period, I learned a series of principles,For example Multi-threading technology, double-buffering technology, data transmission technology, SOCKET programming technique to study the principle of network communication, JAVA writing principles. Internet chat, data transmission, network communications, interfaces structure, such as: the board, establishing server, connecting server, option had been realized. I know these technologies through studying and researching, I using of SOCKET programming, server and client can be connecting, i using of multi-threading technology to complete the server side and client-side data transmission and the client can synchronize the two processtion. Pictures and drawing board loading, I using of double-buffering to eliminate screen flicker. Keywords:multi-threaded socket client network communication

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

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

【强烈推荐】五子棋人人对战_c++五子棋毕业论文报告

VC课程设计报告 学院:理学院 专业班级:信息与计算科学班 学生姓名:***** 学生学号:12345 指导教师:### 提交时间:2013年07 月02 日

成绩: 设计题目:五子棋人人对战

目录 第1章引言 .................................................................................................................................................第2章任务概述 ......................................................................................................................................... 2.1问题概述 ......................................................................................................................................... 2.1.1问题重述 .............................................................................................................................. 2.1.2设计目的 .............................................................................................................................. 2.2需求分析 ......................................................................................................................................... 2.2.1基本要求 .............................................................................................................................. 2.2.2游戏功能介绍 ......................................................................................................................第3章概要设计 ......................................................................................................................................... 3.1功能设计 ......................................................................................................................................... 3.2程序结构 ......................................................................................................................................... 3.3基本流程 .........................................................................................................................................第4章程序实现 ......................................................................................................................................... 4.1主要变量及函数的说明 ................................................................................................................. 4.1.1主要变量 .............................................................................................................................. 4.1.2主要函数 .............................................................................................................................. 4.2主要功能的实现 ............................................................................................................................. 4.2.1类声明 .................................................................................................................................. 4.2.2棋盘初始化 .......................................................................................................................... 4.2.3开始下棋 .............................................................................................................................. 4.2.4判断下棋合法 ...................................................................................................................... 4.2.4判断输赢 ..............................................................................................................................

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性能需求 一款小游戏的确立是建立在各种各样的需求上面的,这种需求往往来自于玩家的实际需求,其中玩家的实际需求最为重要.面对游戏拥有不同知识和理解层面的玩家,游戏制作人对玩家需求的理解程度,在很大程度上决定了此类游戏开发的成败.因此如何更好地的了解,分析,明确玩家需求,而且能够准确,清晰以文档的形式表示给游戏制作人,保证开发过程按照满足玩家需求为目的正确开发方向进行,是每游戏游戏制作人需要面正确问题。 作为五子棋的设计需要考虑到的最基本的需求莫过于人机对战与人人对战功能的实现,当然还有下棋过程中的下棋悔棋功能以及判断游戏的胜负等方面的要求。当然最好是要考虑到界面的友好性,作为一个娱乐软件,还应

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

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

专业班级信息与计算科学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

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.doczj.com/doc/83832572.html, 6)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 编码与调试 2.5实验室 撰写论文 1.5图书馆、实验室 学生签名: 2009年6 月15 日 课程设计(论文)评审意见 (1)完成基本算法(20分):优()、良()、中()、一般()、差();(2)完成调试(20分):优()、良()、中()、一般()、差();(3)创新设计(20分):优()、良()、中()、一般()、差();(4)设计分析(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是( )、否() 评阅人:职称: 2009年6月21 日

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