基于J2ME五子棋手机游戏开发 - 毕业设计论文(2)

2019-02-15 19:15

提供给最大范围设备使用的最小类库集合,在配置中同时包含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.棋类游戏的相关探讨

3.1 逻辑层和表现层的分离

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

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

3.2 自适应尺寸和可移植性

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

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

- 4 -

用的硬代码。

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

4.五子棋游戏的架构

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

4.1 事件驱动游戏

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

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

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

4.2 游戏的类结构

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

- 5 -

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

开始玩家落子判定落子合法性YNY判定游戏是否结束N计算机落子判定游戏是否结束NY结束 图4.1 事件驱动游戏循环

- 6 -

CanvasMIDlet画布FIRCanvasFIRMIDletAbout关于表单主类逻辑FIRLogicAbout设置表单棋子Dot图4.2 类结构

4.3 游戏的流程

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

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

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

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

- 7 -


基于J2ME五子棋手机游戏开发 - 毕业设计论文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中南大学 数电试卷及答案03

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: