1、毕业设计说明书基于J2ME手机五子棋游戏设计和实现专业计算机科学和技术学生姓名杨婷婷班级B计算机064学号指导老师王 榕完成日期5月25日基于J2ME手机五子棋游戏设计和实现摘 要:J2ME(Java 2 Micro Edition)是多年来伴随多种不一样设备,尤其是移动通信设备飞速发展而诞生一项开发技术。它因其“write once,run anywhere”Java特征而提升了开发效率。伴随手机性能不停提升,手机休闲娱乐应用将成为PC休闲娱乐应用以后又一关键业务增加点。棋类游戏规则单一,比较适合在手机等便携终端推广。 因为含有跨平台、易于移植、占用空间小优势,J2ME成为移动应用开发平台主
2、流,并提供了很多用以支持移动应用软件开发API。现将该技术用于这次手机游戏开发,能够实现游戏快速开发,不仅便于查看游戏运行过程中内存占用量和程序每一部分代码消耗了多少处理器时间,而且能够不停地优化代码,使代码含有高度复用性、可扩展性、可维护性。游戏开发以J2ME为平台,利用Java技术,结合J2MEMIDP技术,并对于程序设计思想,关键类、方法等展开讨论。在对弈部分,分析设计走棋算法,选择适宜方法组织成代码,实现基础人工智能。过程中使用了J2ME中CLDC/MIDP软件体系,关键利用了MID Profile特定类支持,来完成游戏开发。关键词:J2ME;CLDC;MIDPDesign and I
3、mplementation of Gobang Cell-phone Game Based on J2MEAbstract: J2ME is a kind of fast developing technology implemented on various devices especially mobile communication equipments. It improves the efficiency of the development process because of its write once, run anywhere nature. The development
4、 trend of the entertainment market based on the cell phone is very obvious because the handset performance enhances unceasingly. The entertainment market based on the cell phone will to be the new important business growth point follow the PC entertainment market. As the rules of a single chess game
5、, it is more suitable for mobile phones and other portable terminal extension. J2ME has been the preferred platform for development because of its platform independent and compatibility, and provides a lot of APIs to support the development of mobile application software. The technology for mobile g
6、ame development, can achieve the rapid development of the game. It is not only easy to observe the memory consumption and processor consumed time during the operation of the game, but also can optimize the code, so that the code has a high degree of reusability, scalability, maintainability. The gam
7、e has designed by J2ME, the Java technology and the MIDP technology. I studied the procedure thought, the important class and the method. In the playing chess part, I have analyzed the algorithm, choosed the appropriate way to organize the code and realized the basic artificial intelligence. On the
8、other hand, I learned software system of CLDC/MIDP and the specific class of the MID Profile to complete the game development. Key words: J2ME;CLDC;MIDP目 录1 概述11.1 课题研究背景11.2 课题研究意义22 开发技术背景22.1 JAVA语言概述22.2 J2ME介绍32.3 J2ME体系结构42.4 移动信息设备简表72.5 开发平台83 系统分析及总体设计93.1 可行性分析93.2 需求分析93.3 系统概要设计104 系统具体设
9、计134.1 界面设计134.2 走棋算法274.3 胜败判定295 系统测试305.1 测试方案305.2 测试结果306 结 束 语35参考文件36致 谢37附 录38附录1 程序清单38附录1.1 StartGame.java程序清单38附录1.2 Chesses.java程序清单39附录1.3 Chessboard.java程序清单44附录1.4 其它程序清单49基于J2ME手机五子棋游戏设计和实现1 概述 1.1 课题研究背景手机游戏实现方法关键包含嵌入式游戏、浏览器游戏、短消息服务游戏、J2ME和其它解释语言。Java 2 Micro Edition是一个针对移动电话和PDA这么小
10、型设备Java语言。J2ME和台式机中Java相比还是有一定限制,不过它已经极大提升了移动电话支持游戏能力。而且含有一定优势:庞大潜在用户群、便携性、开发门槛较低。手机是现代生活方法产物,如同因特网普及造成网络游戏高速发展一样,手机普及,对满足不一样功效手机软件需求也就越来越迫切,这就需要比很好手机软件开发平台,此时含有平台无关性优点J2ME开发平台也就应运而生。J2ME是Sun企业为消费电子和嵌入式设备软件需要而开发应用程序接口和技术规范,J2ME提供了由多家大型移动设备厂商一起设计和提出工业标准简表(简称MIDP)开发接口,因为这个MIDP简表不是某个特定商家所拥有,所以含有一定通用性,所
11、以由J2ME开发软件对多家大型移动设备厂商生产支持MIDP简表手机全部适用,比如Nokia、Motorola和三星等多家手机厂商推出多款支持J2ME手机。和传统主流PC游戏相比,手机游戏价值在于打发部分无聊时间,作为一个移动娱乐终端,手机游戏施展身手机会永远可能是在地铁站、公交车或是洗手间这些地方,可能在庞大游戏行业里,手机游戏将永远饰演着一个边缘者角色,因为谁也不能指望一个人在家时候用手机玩游戏或看电影。不过手机游戏市场是巨大,即便是只有十分之一用户来购置游戏,那也将是不可忽略商业机遇。伴随移动开发技术不停升级和终端设备成本下降,多年来,手机在一般消费人群中得到了极大普及。凭借其便于携带、沟
12、通迅捷、功效多样、私密性强等独有优势,手机已经成为一般民众不可替换随身工具。其益智、趣味和休闲特点迎合了消费者娱乐需要,手机游戏开发推广已经成为手机生产商和运行商关键业务增加点,游戏软件产业价值不停提升。手机游戏是手机一个高附加值操作软件,游戏编程是手机软件编程关键组成,同时也连续推进手机软件技术升级进步。手机游戏按手机平台分类,关键有J2ME、Brew、UniJa等。其中J2ME手机开发平台使用最为广泛。作为SUN企业针对微型嵌入式消费电子产品开发编程系统,J2ME技术是目前手机软件开发主流平台,各大手机生产厂商现在主流产品绝大全部使用J2ME技术。基于J2ME技术开发手机软件能够实现手机功
13、效多样化和专业化,极大满足了大家对手机要求更高需求。1.2 课题研究意义本设计基于J2ME技术,开发一款五子棋游戏软件,能够供大家闲暇时间随时随地娱乐,提升棋艺。同时五子棋游戏程序开发实现这个课题,恰好提供给我这么一个研究机会,经过对人工智能中博弈方面研究,实现简单人机对弈设计。 经过对该课题研究和实践,首先,深入熟悉面向对象语言,加深对J2ME层次结构了解。经过NetBeans集成开发环境创建软件,最终形成一个含有基础功效手机五子棋游戏,可应用于便携式设备,适合于棋类爱好者。其次,了解手机游戏开发特点和现实状况。而且对人工智能中比较轻易实现人机博弈进行学习,更深刻地了解人工智能这门边缘学科实
14、用性。2 开发技术背景2.1 JAVA语言概述Java出现是源于对独立于平台语言需要,期望这种编程语言能编写出嵌入多种家用电器等设备芯片上、且易于维护程序。大家发觉当初编程语言全部有一个共同缺点,就是针对CPU芯片进行编译。这么,一旦电器设备更换了芯片就不能确保程序正确运行。九零年Sun企业成立了开发小组,开始致力于开发一个可移植、跨平台编程语言,该语言能生成正确运行于多种操作系统、多种芯片上代码。Java出现标志着真正分布式系统到来。Java是一个跨平台、面向对象、分布式、解释、安全、结构、可移植、性能很优异多线程动态语言。Java特点: 平台无关性:平台无关性是指Java能运行于不一样平台
15、。Java引进虚拟机原理,并运行于虚拟机,实现不一样平台Java接口之间。使用Java编写程序能在世界范围内共享。Java数据类型和机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码解释实施功效,提供不一样平台接口。 安全性:Java编程类似C+,学习过C+读者将很快掌握Java精髓。Java舍弃了C+指针对存放器地址直接操作,程序运行时,内存由操作系统分配,这么能够避免病毒经过指针侵入系统。Java对程序提供了安全管理器,预防程序非法访问。面向对象:Java吸收了C+面向对象概念,将数据封装于类中,利用类优点,实现了程序简练
16、性和便于维护性。类封装性、继承性等相关对象特征,使程序代码只需一次编译,然后经过上述特征反复利用。程序员只需把关键精力用在类和接口设计和应用上。Java提供了众多通常对象类,经过继承即可使用父类方法。在Java中,类继承关系是单一非多重,一个子类只有一个父类,子类父类又有一个父类。Java提供Object类及其子类继承关系如同一棵倒立树形,根类为Object类,Object类功效强大,常常会使用到它及其它派生子类。分布式:Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接收信息方法。这使得程序员使用网络上文件和使用本机文件一样轻易。 健壮性:Java致力于检验
17、程序在编译和运行时错误。类型检验帮助检验出很多开发早期出现错误。Java自己操纵内存降低了内存犯错可能性。Java还实现了真数组,避免了覆盖数据可能,这些功效特征大大提升了开发Java应用程序周期。而且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功效。2.2 J2ME介绍J2ME是SUN企业针对嵌入式、消费类电子产品推出开发平台,和J2SE和J2EE共同组成Java技术三个关键分支。J2ME实际上是一系列规范集合,由JCP组织制订相关Java Specification Request(JSR)并公布,各个厂商会根据规范在自己产品上进行实现,不过必需要经过
18、TCK测试,这么确保兼容性。J2ME是JAVA三大分支之一,专门用于开发基于消费性电子产品应用。J2ME支持个人手持移动设备,如手机、PDA等。手机用户能够经过支持JAVA功效终端,使用多个全新图形化、动态化和个性化移动增值服务。J2ME提升了移动电话支持游戏能力,比SMS或WAP更轻易控制和交互界面,而且能够经过无线网络连接到远程服务器。伴随JAVA手机普及,J2ME成为现在最流行移动游戏开发环境。现在手机访问Internet只能访问WML网页,而不是主流HTML网页,也不能显示复杂图形格式,能提供功效很有限,而且,因为现有处理方案不够智能化,又不能访问当地存放区,假如进行在线交易会增加服务
19、器负荷,使服务器反应速度变慢,使无线Internet应用受到了很大限制。J2ME出现则使上述问题迎刃而解。因为J2ME是基于Java语言,所以它天生就含有以下优点:A.动态内容传输新应用、服务和内容能够经过不一样类型网络动态下载。B.安全类文件校验、明确定义应用程序编程接口和安全组件确保了第三方应用程序行为是可靠,不会对设备或网络造成损害。C.交叉平台兼容性标准化语言组件和库意味着因为支持配置和描述所带来约束使应用和内容能够在不一样设备之间灵活地传输。D.离线获取不用激活网络连接,应用就能够被使用。这种特点降低了传输费用,减轻了可能网络故障带来影响。E.一个功效强大现代面向对象编程语言Java
20、相对于目前用于无线软件开发编程语言和工具来说含有愈加完善抽象机制和更高级程序结构,这使得应用开发愈加有效。这些特征使第三方软件开发商能够很轻易地介入应用程序开发,而且能够很方便地将应用程序安装到手机上,开发周期也大大缩短,而且还能支持应用程序动态下载和升级。J2ME应用程序除了能够愈加好地完善手机上已经有应用外,还深入增加了字典、 图书、游戏、定时提醒等新应用,并能访问电子邮件、即时消息、股票和电子地图等信息。J2ME程序设计多个标准:第一,使用面向对象编程。即使使用面向过程编程能够减小文件尺寸,不过为了以后维护方便和利于扩展,还是要使用面向对象编程。第二,使用MVC模式。将模型、界面和控制分
21、离。第三,自动存放用户设定使用RMS来存放用户信息,这么不仅能够降低用户输入,而且对用户友好。很多程序做了自动登陆等。第四,部分系统设置许可用户关闭。如背景音乐、背景灯显示等。第五,将低级用户界面绘制动作放在一个独立线程里面去。第六,在需要大量时间才能完成工作时,给用户一个等候界面。2.3 J2ME体系结构Java 2技术是一系列产品集合,Java 2技术体系结构图2-1所表示。图2-1 Java 2技术体系结构 其中,J2ME为运行在嵌入式消费类电子产品设备,如移动电话、PDA、游戏终端之上应用程序提供了一个健壮、灵活环境。和J2SE、J2EE和JavaCard一样,J2ME一样包含了一个小
22、型虚拟机和一系列Java API。除此之外,J2ME还提供了灵活图形用户界面、健壮安全模型、广泛联网协议支持。J2ME是一个经过很多部件和规范技术,这众多部件和规范帮助J2ME来满足这众多消费产品不一样需要。和全部爪哇程式语言技术一样,在它关键属于一个虚拟机。就像使用全部Java技术一样,J2ME关键也在一个虚拟机中。最初,用于J2ME应用程序虚拟机被称作Kilobyte virtual machine或简称KVM。就像它名称含义,KVM比较小,通常只有128K或更少。这比起通常了解和使用Java 2标准版Java虚拟机(JVM)32MB来说就小得多了。为了使J2ME程序广泛适适用于各类嵌入式
23、平台,J2ME采取了模块化结构,底层是宿主机操作系统,内部则分为三层:Java Virtual Machine(虚拟机层);Configuration(配置层);Profile (简表层)。J2ME中有两类虚拟机:CVM(C虚拟机)和KVM(K虚拟机),CVM功效比KVM更为强大。其体系结构图2-2所表示。Optional PackagesProfilesConfigurationHost Operating SysteJava Virtual Machines图2-2 体系结构框图Java 虚拟机(JVM)层:这一层是针对设备当地操作系统定制Java虚拟机实现,支持特定J2ME配置,就像使用
24、全部Java技术一样,J2ME关键也在一个虚拟机中。配置(Configuration)层:面正确是大量多种不一样小型嵌入式设备,它们在外观和功效上均各不相同。J2ME将这些设备进行分类,将部分共性提取出来形成适合于某个范围中设备可用规范,称为“配置”。读者也能够将配置了解成为对硬件描述,所以经过定义配置方法就能够清楚地描述硬件功效。 对大量软硬件特征不一样嵌入式设备,依据其外观和性能特点进行分类,提取其中共性形成一套规范称之为配置。配置在J2ME体系结构中起着承上启下作用,定义了针对存放空间、电源配置、网络连接等硬件功效和特征包含:要求了所支持Java编程语言特征;要求了所支持Java虚拟机特
25、征;要求了所支持基础Java类库及其API函数。 到现在为止,经过Java规范定义只有两种配置:连接设备配置(CDC)和连接收限设备配置(CLDC)。CLDC和CDC大部分功效全部起源于J2SE。因为CDC和CLDC针对设备CPU处理能力和内存大小不一样,所以它们使用虚拟机和关键类库也不相同,CDC关键类库比CLDC要大,提供功效也更强。CLDC、CDC和J2SE之间关系图2-3所表示。图2-3 CLDC、CDC和J2SE关系图 连接设备配置(Connected Device Configuration,CDC):为处理能力较强、内存空间更大、联网能力更出色且电源稳定设备设计。CDC目标设备包
26、含关键包含电视机顶盒、车载娱乐系统、高端PDA等,它们通常含有32位或64位CPU,2MB以上能够用于Java平台实现和运行相关应用程序内存空间。连接收限设备配置(Connected Limited Device Configuration,CLDC):为含有间断性联网能力、较慢处理器、有限内存、没有稳定电源供给设备设计。CLDC目标设备关键包含移动电话,双向呼叫器和入门级PDA等,它们通常含有16位或32位CPU,配置128KB512KB内存可用于Java平台实现和运行相关应用程序。CLCD关键面向J2ME开发平台,由两个部分组成:为应用程序提供最小Java语言类库和适合在资源受限设备上运行
27、Java虚拟机(KVM)。简表(Profiles)层:简表层定义了特定系列设备上可用应用程序编程接口(API)最小集。简表在一个特定配置上面实现。应用程序是针对特定简表编写,所以能够移植到支持该简表任何设备上。另外,一个设备能够同时支持多个简表。用户和开发人员看到最多就是这一层。Java虚拟机是J2ME技术关键,不过配置和简表提供特殊环境类应用程序接口。配置是用于一组通用设备最小Java平台,而简表则为具体设备家族或尤其应用程序提供更具体功效。每个配置和简表处理通常或具体消费产品。配置和简表规范是由多个多样设备生产商和用户共同开发并建立。简化地举例概括说明,假设假如想为小型信息家电编写Java
28、应用程序话,需要两个前提:一个配置和最少一个简表。现在,通常是配置捆绑了虚拟机和一套针对各自平台所能够用横向分组设备Java类库;另外最少需要一个简表来为平台提供附加Java类,这个简表通常会为各自对应设备提供用户界面、输入和数据库类。有了这两个前提,就有了能够使用Java为不一样设备编写应用程序基础J2ME环境。2.4 移动信息设备简表 移动信息设备简表(MIDP)为移动电话和入门级PDA设计,为移动应用程序提供了所需全部关键功效,包含应用程序模型、用户界面、持久性数据存放、联网能力及应用程序管理功效。现在应用很广泛MIDlet就是在MIDP中定义。CLDC和MIDP组成了完备Java运行环
29、境大大提升了手持移动智能设备功效,而且最小化了设备内存和电源消耗。MIDP框架图2-4所表示。图2-4 MIDP框架图MIDP提供关键应用程序功效,包含用户界面、网络连接、当地数据存放和应用程序生命周期管理。MIDlet生命周期步骤图图2-5所表示。MIDP中含有下列API包:A. javax.microedition.lcdui: 用户界面(UI)API,它为MIDP应用提供了一整套实现用户界面功效特征。B. javax.microediton.rms: 移动信息设备描述提供了一个让MIDlets持久性储存并在以后能够取回数据机制。C. javax.microedition.midlet:
30、这个MIDlet包明确定义了MIDP应用,也定义了和应用环境之间交互。D. javax.microedition.io: 移动信息设备还描述包含基于有限连接设备配置GenericConnection框架网络支持。图2-5 MIDlet生命周期步骤图2.5 开发平台伴随手机软件开发发展,市场上同时并存很多手机游戏开发平台。现在手机访问Internet只能经过WAP(Wireless Application Protocol)方法,而且只能访问WML(Wireless Markup Language)网页,而不是主流HTML网页,也不能显示复杂图形格式。另外,WAP采取Brower/Serve方法
31、访问Internet,能提供功效很有限,而且因为现有WAP处理方案不够智能化,又不能访问当地存放区,假如进行在线交易会增加服务器负荷,使服务器反应速度变慢,使无线Internet应用受到了很大限制。J2ME出现恰好有效处理了以上问题。其Java语言特征,使其含有以下优点:a.动态内容传输。新应用、服务和内容能够经过不一样类型网络动态下载。b.安全。类文件校验、明确定义应用程序编程接口和安全组件确保了第二方应用程序行为是可靠,不会对设备或网络造成损害。c.交叉平台兼容性。标准化语言组件和库意味着因为支持J2ME配置和描述所带来约束使应用和内容能够在不一样设备之间灵活地传输。d.离线获取。不用激活
32、网络连接,应用就能够被使用。这种特点降低了传输费用,减轻了可能网络故障带来影响。e.现代面向对象思想。Java相对目前用于无线软件开发编程语言和工具来说含有愈加完善抽象机制和更高级程序结构,这使得应用开发愈加有效。f.巨大开发者团体。这些特征使第二方软件开发商能够很轻易地介入应用程序开发,而且能够很方便地将应用程序安装到手机上,开发周期大大缩短,而且还能支持应用程序动态下载和升级。J2ME定义和标准化了一个可移植无线应用开发环境,关键是针对第二方应用开发商,将设备软件开发向第二方开放,这个环境能够灵活地附加到设备制造商开发已经存在软件和硬件之上,而且不会对已经存在系统软件造成影响。这种嵌入式思
33、想也极大地推进了J2ME发展壮大。本设计关键是在Netbeans IDE开发环境下进行开发、测试和调试。基于J2ME平台,它将Java语言和平台无关特征移植到小型电子设备上,许可移动无线设备之间共享应用程序。NetBeans是一套完全以Java撰写而成、而且开放原始码开发工具。Java Studio Micro Edition大致上是把NetBeans IDE和J2ME Wireless Toolkit结合在一起产品。能够方便J2ME应用程序开发者更轻易追踪问题和除错。四种模拟器种类,如表2-1所表示。表2-1 模拟器版本模拟器名称 说 明DefaultColorPhone 一般彩屏电话 De
34、faultGrayPhone 一般灰屏电话 MediaControlSkin 有音频和视频控制一般电话QwertyDevice 有Qwerty样式键盘掌上设备3 系统分析及总体设计3.1 可行性分析3.1.1 技术可行性五子棋是传统对弈游戏,历史悠久、规则单一。手机游戏实现方法关键包含嵌入式游戏、浏览器游戏、短消息服务游戏、J2ME和其它解释语言。Java 2 Micro Edition是一个针对移动电话和PDA这么小型设备Java语言,即使它和台式机中Java相比还是有一定限制,不过已经极大提升了移动电话支持游戏能力。在NetBeans环境中编写并在模拟器中运行简单明了。3.1.2 操作可行
35、性本游戏开发后可导入手机操作,供个人日常娱乐所用,完全使用手机键盘操作,操作简单,所以在这方面是完全可行。3.2 需求分析3.2.1 系统性能需求首先,手机游戏最大问题在于每一款手机拥有自己屏幕大小和特定API及性能。游戏开发过程中,要考虑到游戏程序设计要能合乎大多数手机应用。J2ME提出一系列标准使得使用J2ME开发游戏能够在配置J2ME任何厂家移动设备上运行。软件最好操作简单轻易。受手机屏幕大小和显示影响。手机键盘不方便,游戏需要设计得轻易操作。其次,软件含有些人工智能算法原理要简单,而且运行快速。对于人机游戏,不需要网络连接,游戏处理不会有太长等候时间。游戏是需要快速反应。手机处理器频率
36、直接要求我们需要使用简单实用智能算法。另外,所制作软件在结构上应含有很好可扩展性,便于以后功效扩展。3.2.2 系统功效需求A.游戏内容此款游戏专题是五子棋对弈。无“禁手”规则基础是人人皆知。相同颜色棋子,五子一线为胜。B.游戏方法区分于通常生活中人和人对弈,用在手机上为人机对弈,在手机屏幕上结构一个游戏棋盘,而且设计黑、白棋子。利用人工智能相关知识实现对弈。C.游戏对象五子棋手机游戏是大众游戏,游戏者只要含有通常操作知识就能够进入游戏。对玩游戏者并没有什么特殊要求。D.游戏目标此款手机游戏为棋类游戏,就是为了让大家闲暇时间休闲、锻炼棋艺,游戏设计尽可能地模拟现实生活中场景。a) 游戏开始界面
37、:玩家可使用“开始”软键进入游戏。 b) 棋子选择功效:玩家可选择走棋前后次序,黑先白后。c) 棋盘界面:对弈界面,使用上、下、左、右键来移动落子点位,使用确定按钮来落子,对应条件下可实现悔棋、暂停、重新开始游戏功效。d) 胜败判定:包含人工智能,用以判定人和机器输赢情况,游戏无“禁手”,五子首先连成一线则为胜。3.3 系统概要设计3.3.1 模块划分在完成了需求分析后,需要对此游戏进行总体计划,模块划分,基础步骤设计。在总体计划期间相对要考虑到游戏扩展性,因为在最初设计游戏时候不可能面面俱到,而且伴随技术发展,也需要游戏含有很好扩充性。此次系统设计关键模块分为:欢迎模块、规则说明模块、对弈模
38、块、胜败判定模块。各关键模块功效描述以下:欢迎模块:这部分是游戏出现第一个界面,关键是为了说明已经进入五子棋游戏系统。规则说明模块:此模块关键是游戏者选择界面。提供选择项有游戏说明,开始游戏和退出游戏。对弈模块:该部分关键是进行人机对弈棋盘界面。该模块中包含悔棋、暂停游戏、放弃本局这些功效。胜败判定模块:这部分即是对每次棋局结果判定,是人赢了或是机器获胜。系统关键功效模块图3-1所表示。落子走棋实现悔棋暂停/恢复游戏放弃本局基于J2ME手机五子棋游戏欢迎模块胜败判定模块规则说明模块对弈模块图3-1 系统功效模块图3.3.2 系统步骤明确了关键模块功效后,就需要对此游戏软件基础步骤有一个总体计划
39、,本款手机游戏软件基础步骤图图3-2所表示。游戏规则界面棋子类型选择选择黑子 玩家先行选择白子 机器先行棋盘对弈界面结果判定界面开始游戏退出游戏图3-2 系统基础步骤图 3.3.3 系统用例图 游戏设计用例图图3-3所表示。选择棋子人机对弈落子走棋悔棋暂停游戏放弃本局 玩家图3-3 系统用例图3.3.4 关键类介绍 J2ME是面向对象程序设计语言,类是其设计关键。程序总体设计阶段首要任务就是设计好对应类,只要类设计好了能够让程序一目了然。在这款游戏中,总共是分为了八个类,其实很多类全部是相对类似。首要类是MIDlet类子类Wuziqi,它是整个程序框架,程序运行必需从它开始。其次依据前面设计功
40、效模块划分,对应要设计各个子类,如游戏欢迎界面、游戏说明界面、棋盘设计界面、棋子设计、对弈界面、人工智能实现界面等,另外J2ME技术关键就是在屏幕绘制基础上利用命令监听实现各个功效。关键类作用说明:a) Wuziqi1.java该java文件是设计MIDlet程序基础框架,该生命周期继承了javax.microedition.midlet.MIdlet抽象类。程序从该类开始实施。b) StartGame.java该文件生成类显示开始游戏入口和游戏说明。c) Chessboard.java该文件生成类用来创建棋盘对象,在画布上绘制棋盘,另外,取得棋盘上棋子信息。将手机上软键转化为游戏键进行走棋控
41、制。棋盘可进行悔棋、暂停、放弃游戏。d) Chesses.java该文件生成类负责创建棋子对象,棋子对象能够获取本身颜色外观。e) Point.java该文件生成类用来创建棋盘棋点对象。能够判定该点上是否有棋子、指定目前点上棋子、获取目前点上棋子、移动目前点上棋子。 f) AI.java该文件类关键是实现走棋算法和结局判定。4 系统具体设计4.1 界面设计该部分关键说明手机游戏画面显示,包含一开始项目标创建、画面低级绘制、图像获取、UI组件显示及怎样进行游戏按键处理。本程序设计关键使用了MIDP所提供javax.microedition.lcdui包中类来实现手机用户界面。各个类如表4-1所表
42、示。表4-1 javax.microedition.lcdui包类描 述接口Choice提供一个常规接口来管理选中项目CommandListener许可创建一个高级UI命令消息监听器UI系统和工具类Display代表系统显示设备和输入设备管理器Font取得字体对象和它们尺寸Image提供一个类来保留图像对象(以PNG格式)AlertType提供一个帮助类来定义能够创建Alert类型Displayable提供一个能够显示对象抽象基类高级UICommand抽象用户交互动作Screen类Screen提供高级UI组件基类Alert提供一个Screen来警告部分事情List提供一个Screen对象包含一
43、列被选项Forms & ItemsChoiceGroup提供一个UI组件代表一列选项ImageItem提供一个图像ItemTicker提供一个Item在display上面显示一条滚动文字低级UIGraphics提供二维图像工具Canvas提供一个创建低级UI图像基类4.1.1 项目创建 首先是在NetBeans IDE环境中创建项目,图4-1所表示。然后设置项目名称,图4-2所表示。再选择对应平台,图4-3所表示。图 4-1 新建项目图 4-2 设置项目名称和位置图4-3 选择平台4.1.2 手机游戏外观设计 首先,MIDlet应用程序关键即为MIDlet类。MIDlet事件处理分为高级和低级
44、事件处理,则可实现设备内应用程序和用户之间交互机制。该类是设计MIDlet程序基础框架,生命周期继承了javax.microedition.midlet.MIdlet抽象类。在active状态调用destroyApp(boolean unconditional)或pauseApp()方法能够使得MIDlet进入destroyed或pause状态。所使用方法叙述如表4-2所表示。表4-2 javax.microedition.MIDlet类方 法描 述abstract void destroyApp(boolean unconditional)应用程序管理器在应用程序关闭前,调用这个方法,能够保
45、留状态和释放资源等abstract void pauseApp()在用户暂停游戏时,应用程序管理器调用MIDlet这个方法abstract void startApp()应用程序管理器调用MIDlet这个方法,告诉用户想要再次开始游戏abstract void notifyDestroyed()假如游戏者决定退出游戏,调用这个方法来通知应用程序管理器abstract void notifyPaused()调用该方法来通知管理器游戏者已经暂停了游戏abstract void resumeRequest()调用该方法告诉应用程序管理器MIDlet需要重新开始应用程序管理器(AM)作用是管理MIDl
46、et。它是一个主控程序,控制着正在发生事情。如背景知识中所介绍,MIDlet被创建后默认为暂停状态。当应用程序认为它准备完成,它会调用startApp()方法来通知MIDlet进入运行状态。主MIDlet类组员结构图4-4所表示。图4-4 主MIDlet类组员结构管理画面显示功效javax.microedition.lcdui.Display类。这个Display类能够让javax.microedition.lcdui.Display类子类显示在画面上。Displayable类子类大致说来能够分为两种,分别为用来进行线和图形和图像低级描绘类,和用于显示警告和文本输入,选择列表等UI组件类。前者是指javax.micredition.lcdui.Canvas类,后者是指javax.microedition.lcdui.Screen类和其子类(Alert,Form,List类等)。它们之间关系以下图4-5所表示。用来显示画面用Display对象,能够从Display类Static方法getDisplay(MIDlet)返回值获取。经过在获取Display 对象上设置Displayable对象,就能够让Displaya