,移动开发   工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛,移动开发
您的位置:软件 > 开发者网络 > 开发工具 > 移动开发 > 正文
Eclipse开发J2ME程序之图形化游戏
[文章信息]
作者:中国电子科技集团公司第二十二研究所青岛分所郎锐
时间:2005-04-12
出处:天极网
责任编辑:方舟
[文章导读]
本文将介绍一个简单的图象化手机游戏--"花皮猫大战流氓兔"的制作过程
advertisement
专题教程宝典
【软件应用】
【办公软件】
【图形图像】
【网页制作】
【操作系统】
【网络安全】
【程序开发】
【日报周刊】
【多媒体教程】
· 天极软件应用多媒体教程
· 游戏开发新手入门讲座
· 多媒体系列教程:网页设计制作
· 豪杰超级解霸V9使用手册(下)
· 打造个性化的Windows操作系统
· 图解Photoshop CS2 新功能体验
· 编程中的“拿来主义” 第三方控件推荐
· JBuilder 2005 单元测试体验
· 豪杰超级解霸V9使用手册(上)
· 数码照片后期处理与创意设计
[正文]

上一页  1 2  

  人工智能的实现

  如果说前面介绍的框架是骨骼,界面是皮肉的话,那么接下来将要介绍的人工智能部分则可以说是整个程序的灵魂了。它将进行对弈双方落子的合法性检测、计算机行棋的智能计算、游戏结束检测以及对胜负结果的判定等工作。以上这些都需要有合理的设计才能实现较高的游戏运行效率。考虑到游戏规则始终是围绕双方棋子的排列形状来进行的,因此可以把棋盘网格作为主要因素进行设计。按从左到右,从上到下的次序从0开始依次对棋盘的9个网格进行编号,可以得出如下几组获胜条件:0,1,2;3,4,5;6,7,8;0,3,6;1,4,7;2,5,8;0,4,8;2,4,6。只要有一方有三颗棋子的位置符合其中任何一组即可认定该方获胜(读者可以在纸上验证一下)。在程序实现过程中以WINS数组记录上述几种获胜条件,并在每一次行棋完毕后进行比对,以判断游戏是否有获胜方产生。限于篇幅,下面主要对计算机行棋思路的人工智能设计进行介绍。

  首先明确计算机的对弈目的:获胜,如果暂时无法获胜则阻止选手获胜,如果双方都暂时无法获胜则可以下一些"随手棋"。在计算出合适的下子位置后将其添加到己方的行棋记录(打谱)以备后用。由此可以写出如下代码:

int move = getWinningComputerMove();//如能立即获胜则在获胜位置下子
if (move == -1) {
 //如选手即将获胜则在选手将获胜的位置下子
 move = getRequiredBlockingComputerMove();
 if (move == -1) // 如双方均暂时无法获胜则下随手棋
  move = getRandomComputerMove();
}
computerState |= bit(move); // 当前计算机占用的所有位置

  其中,getWinningComputerMove方法通过对所有可能下子位置(即尚未落子的网格)的枚举,智能判断计算机下一步走到哪里才能获胜:

int move = -1;
for (int i = 0; i < 9;++i) {
 if (isFree(i) && isWin(computerState | bit(i))) {
  move = i; // 找到获胜位置时中断
  break;
 }
}

  如果循环完毕仍没有找到获胜位置则表示目前己方暂无法获胜,需要进一步调用getRequiredBlockingComputerMove方法来计算下一回合对方有无获胜的可能,其实现代码与getWinningComputerMove完全类似,只是以选手的行棋记录playerState替代计算机的行棋记录computerState而已。以上寥寥数行代码即构成了计算机对弈算法的人工智能核心部分,显然人工智能在实现上并没有想象的那么复杂与困难。

  小结

  通过本系列文章的介绍,陆续将J2ME手机应用程序的一般开发过程向读者作了一个较为系统和全面的介绍。尤其是本篇对图形化手机游戏的介绍相信一定对读者有不同程度的启发作用,而且本文所述程序框架完全是通用的,读者只需在此基础之上重新设计游戏剧本即可实现类似的手机游戏如"华容道"、"俄罗斯方块"等。本系列文章开发环境为:

  Windows 2000 Professional + SP4;
  Java2SDK 1.5.0;
  J2ME Wireless ToolKits 2.1;
  SonyErisson J2ME SDK(WTK 1.0.4);
  SonyErisson T628;
  Eclipse 3.0.1-win32;
  EclipseMe 0.5.5;
  NLpack-eclipse-SDK-3.0.x-win32

上一页  1 2  

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
,移动开发相关内容,移动开发焦点新闻
  • Eclipse开发J2ME程序之插件安装
  • Eclipse开发J2ME程序之安装配置
  • MVC在J2ME项目中的应用之MVC慨述
  • Eclipse开发J2ME手机程序之简介
  • 通过实例论证J2ME的事件传输机制
  • FVD刺激高清碟机加速商业化 抢占商机最重要
  • 3家搜索引擎集体诉讼8848 吕春维未敢出席
  • 杨元庆:没有准备不会获批的备用方案
  • 军队信息化诞生新领域 电子军务呼之欲出
  • 世界经济论坛公布信息化程度全球最新排名
  • 2004政务绩效评估:政府门户尚处于发展阶段
  • 甲骨文出资5.15亿美元 意图收购RetekInc
  • 技术并购:帮你突破传统增长的“天花板”
  • ,移动开发Advertisement