基于j2me五子棋手机游戏开发(编辑修改稿)内容摘要:
子和算法逻辑的。 开始玩家落子判定落子合法性判定游戏是否结束计算机落子判定游戏是否结束结束NNYYYN 图 事件驱动 游戏循环 7 C a n v a s画 布F I R C a n v a sF I R L o g i c逻 辑D o t棋 子F I R M I D l e t主 类M I D l e tA b o u t关 于 表 单A b o u t设 置 表 单图 类结构 游戏的流程 游戏启动时, FIRMIDlet 对象先显示游戏主屏,在屏幕下方一侧是退出软键,另一侧是用软键构成的菜单,菜单元素主要有“设置”和“关于”选项。 当玩家选择“设置”软键时,则显示游戏参数设置表单;当玩家选择“开局”软键时,则显示游戏对战主屏;当玩家选择“关于”软键时,则显示游戏介绍表单。 玩家进入游戏参数设置表单,当玩家按下“确定”软键 时,则确认当前游戏参数,返回游戏主屏;当玩家按下“取消”软键时,则放弃此次对游戏的修改,直接返回游戏主屏幕。 玩家进入游戏对战画布,对战中画布有两个软键,当玩家按下“退出”软键时,则退出游戏;当玩家按下“悔棋”软键时,则进行悔棋操作;当游戏结束时,“悔棋”软键被换成“重玩”软键。 整个游戏的界面切换流程图如图 所示。 8 图 游戏的界面切换游戏图 五子棋的人工智能 人工智能也就是所谓的 AI(Artificial Intelligence),它是一门很抽象的技术(或者也可以称之为艺术 ),游戏中的 AI可以在遵循一定规则的情况下,依程序设计者本身的思考逻辑制作。 可以这样认为,人工智能的核心是使计算机具有自动处理事件的能力,而设计者的所有研究也应该围绕着这一方向进行。 最常见的 AI游戏就是棋盘式游戏。 在这类游戏中,通常的策略类 AI 程序都是使计算机根据目前状况计算所有可走的棋与可能的获胜状况,并计算当前计算机可走棋步的获胜分数或者玩家可走棋步的获胜分数,然后再决定出一个最佳法。 下面介绍一下五子棋的 AI构想。 五子棋的获胜组合 在一 场五子棋的游戏中,计算机必须要知道有哪些获胜组 合,因此我们必须求得获胜组合的总数。 现在假定当前的棋盘为 15x15: 1) 计算水平方向的获胜组合数,每一列的获胜组合是 11,共 15 列,所以水平方向的获胜组合数为: 11x15=165。 9 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。 设计获胜棋型 我们已 经计算出了一个 15x15 的五子棋盘会有 572种获胜方式,这样我们可以利用数组建立一些常规棋型,棋型主要作用是:判断是否有任何一方获胜;根据当前格局判断最可能的落子方式。 然而在现实中,人们总结了很多能够构成获胜棋型的“前奏” ,它们是通向胜利的捷径,如“冲四” 、“活三” 、“双三”等等。 MIDlet 简介 MIDlet 是用 J2ME APIs 开发的程序 ,用于移动计算环境中。 MIDlet 需要一个特殊的运行环境,这个环境主要包含一个应用程序管理器,它为在移动设备上选择和运行 MIDlet 提供方便。 10 MIDlet 生命周期 所有 MIDlet都继承自 ,该类包含了 MIDP平台控制应用程序执行过程的方法。 当 MIDlet 被 初始化 后就进入它的生命周期,该生命周期包含三种状态:激活态( Active)、暂停态( Paused)和销毁态( Destroyed) ,这三种状态的控 制完全由 JAM 来完成。 当出现状态迁移时, JAM 会自动调用相应的方法, MIDlet状态迁移图如 所示。 J A M 初 始 化M I D l e t暂 停 状 态( P a u s e d )激 活 状 态( A c t i v e )调 用 s t a r t A p p 方 法调 用 P a r s e A p p 方 法销 毁 状 态( D e s t r o y e d )调 用 d e s t r o y A p p 方 法调 用 d e s t r o y A p p 方 法 图 MIDlet 状态 迁移触发的方法调用 JAM 加载 MIDlet 后,首先进行初始化的工作,然后将状态设置暂停态,如果在初始化过程中没有出现异常,那么将 MIDlet 的状态设置为激活状态,否则将 MIDlet 的状态设置为销毁状态。 在每次状态转换的时候都要高用相应的方法。 11 主类 FIRMIDlet 类 的实现 FIRMIDlet类 继承了 MIDlet 类, 负责程序的启动和屏幕切换,该类用高级界面中的软键来实现游戏菜单,在不同的手机上,软键可能有不同的分布。 FIRMIDlet 类的 UML 图如图 (1)所示,主界面如图 (2)与 (3)所示。 图 FIRMIDlet 类的 UML 图 图 (2) 初屏 图 (3) 按下菜单后的屏幕 12 FIRMIDlet 类代码片断 //构建主屏表单 public FIRMIDlet() { display=(this)。 form=new Form(null)。 try{ imgSplash=(/)。 //加载屏幕图片 } catch(IOException e){ imgSplash=(1, 1)。 } (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)。 //创建关于软键 (CMD_EXIT)。 //将退出软键添加到主表单 (CMD_GO)。 //将开局软键添加到主表单 (CMD_OPTION)。 //将设置软键添加到主表单 (CMD_ABOUT)。 //将关于软键添加到主表单 (this)。 //监听主表单软键事件 myCanvas=new FIRCanvas(this)。 //创建画布 options=new Options(this)。 //创建设置表单 about=new About(this)。 //创建关于表单 } 游戏介绍表单的实现 About是游戏介绍表单 类, 主 要是向玩家阐述五子棋的一些信息。 其 UML 图如 (1)所示,游戏截图如 (2)所示。 图 (1) About 类的 UML 图 13 图 (2) 关于表单界面 游戏设置表单的实现 游戏设置表单 Option 类用来对游戏的参数进行设置,包括棋盘大小,游戏难度,是否先手,过程中使用了 Gauge 和 ChoiceGroup 两种高级用户界面组件。 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 值的范 14 围为 [0, maxValue])。 这个值必须大于 0,否则会抛出 IllegaArgumentException。 参数 initialValue是一个整数值,表示 Gauge 对象的初始值,它的范围是 [0,maxValue]。 如果 initialValue小于 0,则 Gauge 对象的初始值被设置为 0;如果 initialValue大于 maxValue,则。基于j2me五子棋手机游戏开发(编辑修改稿)
相关推荐
生命耗尽,游戏结束,玩家可以选择重玩,但需要双方 做出一致选择。 四川师范大学成都学院本科毕业设计 6 3 总体设计 程序运行流程 本游戏程序运行需要玩家双方在局域网内建立通信,也可在同一电脑上建立通信,但只能 操作 一个玩家。 具体运行流程如图 所示: 图 程序 运行流程如图 总体构架 本游戏 在设计过程中,为了降低设计难度,将整个程序按模块进行单独编写, 包括开始 服务器建立主机 建立成功
JSP页面,而不影响内容的生成。 JSP 技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。 [10] 重庆邮电大学本科毕业设计(论文) 8 第二节 AJAX 原理 Ajax这个概念的最早提出者 Jesse James Garrett认为 :Ajax是 Asynchronous JavaScript and XML 的缩写。 Ajax
的返工。 现在绝大多数的中小型酒店、宾馆由于资金、人员等多方面原因不易 使用酒店管理类软件,全凭原始的手工记录管理,效率低、易出错;同时,市场上出现的各类酒店客房信息管理软件基本上都是为大型酒店专业设计的,有很多功能对于一般酒店、宾馆根本用不上。 更为关键的是这些酒店客房信息管理软件都是基于客户机 /服务器的,即使功能再强大,客人需要预订客房时都需自己亲自到酒店去预订或者是打电话到酒店预订
T、原始图像、内置 FFT、内置 IFFT。 输入界面 程序在 MATLAB 软件 M 文件中输入,输入完毕无误后,即可运行得出结果。 MATLAB 输入界面如图 41 所示: 图 41MATLAB输入界面 设计结果 编写程序使得实现对图片取灰度,并对灰度进行 FFT 及 IFFT 运算,得出相应的图片。 同时利用 MATLAB 软件系统内置的 FFT 及 IFFT 程序进行相应的运算。 在
体的瞬间立体目标的位置坐标 (X, Y, Z)用已确定的相距距离的已知参考点所发出的极其精确的无线电脉冲时钟源来测定,然后利用地面接收器中己存入的由高等解析几何所构成的模型,建立三维位置量和一个时间量的算法方程。 GPS 为全球用户提供了非常精确的三维定位坐标信息 速度信息、时间和频率参考,它以 4 个卫星射频信号的时间测量为基础,整个卫星系统平台由 21 颗工作卫星和 3 颗备用卫星组成
logy roadmap 毕节学院本科毕业论 文(设计) 第 5 页共 22 页 2. 毕节市七星关区中国工商银行的网点布局影响因素探讨 行政区划 行政区划是银行分布的很 重要的一个因素。 在我国经济发展的历程中, 大型国有 和 地方城市商业银行的布局 都 体现着这一 特征。 中国工商银行 毕节分行碧阳支行、毕节分行奢香支行 均说明这 一 问题。 金融政策