我的第一款J2ME游戏:美女五子棋

时间:2022-06-14 16:04:52
游戏 简介
    初涉j2me领域,总得找个练手的游戏。五子棋是一款老少皆宜的益智类游戏,其规则简单,容易上手。最终,谁先将已方五个棋子在横、竖、左斜、右斜任一方向上连成一线即赢得游戏。我的第一款手机游戏就由它开始,游戏是采用人机对战的方式。

游戏 奖惩制度
    任何游戏都要有一定的奖惩制度,这样才能提高游戏的耐完度。这次我设计的美女五子棋也不例外。玩家战胜手机后,即可欣赏到mm图片。由于手机内存有限,游戏只内置了4副mm图片。每战胜一次手机,图片变换一次,四次后加到第一副图。如果是手机胜了,则无法看到图片。

游戏基本架构
    游戏主要是以下几个类组成:
FiveLink: 是游戏的Midlet主类, 负责游戏的启动,重新开始和结束等。
FiveLinkBoard: 五子棋盘类,负责游戏过程的棋盘绘制,键盘事件处理,控制玩家状态等。
FiveLinkModel: 五子棋的模型,维护当前游戏过程的各种数据,如棋子布局,当前游戏状态等。
Player: 这个类用来描述一个玩家信息,玩家所执棋子颜色等。
AI: 这个类是人机对战的人工智能处理类,主要用来计算最佳下棋点。
   
    FiveLinkModel主要有以下数据:
    short[][] chess;  // 记录当前棋局,其中黑棋用1,白棋用-1代表
    Player currentPlayer;  // 记录当前玩家是谁
    Player machine;   // 手机方
    Player human; // 人这一方的玩家
    boolean gameOver; // 是否游戏结束
    Vector history );  // 游戏获胜历史记录
    int level = 1; // 游戏级别,人这方的玩家每胜一次即加1,共4级,

    其中,还有一些主要的控制方法:
    upgrade();  // 人这一方的玩家每胜一次,level加1,到4后,加到1重新计数。
    getLevelBackground(); // 取得当前级别的背景图。
    exchangePlayer(); // 交换玩家。
    checkWin(); // 检查是否获胜。
    checkTie(); // 检查是否平局。
    isGameOver();; // 游戏是否结束。

   而对于FiveLinkBoard,包含一个FiveLinkModel, 在游戏过程中,FiveLinkBoard从模型中取数据并绘制当前棋局。并且当玩家落子后,将最新的棋局更新到模型中。FiveLinkBoard每走一步就调用模型的exchangePlayer方法交换玩家。如果当前玩家currentPlayer是手机,还会调用AI中的相应方法来找出最佳下棋点下棋。

游戏画面
最后完成的游戏,我抓了几个图下来,

我的第一款J2ME游戏:美女五子棋启动画面
我的第一款J2ME游戏:美女五子棋功能菜单
我的第一款J2ME游戏:美女五子棋游戏过程
我的第一款J2ME游戏:美女五子棋玩家获胜
我的第一款J2ME游戏:美女五子棋 赢了就有美女看!


运行环境

游戏采用Nokia S40平台开发,可以直接运行在Nokia S40平台上。由于采用了标准的MIDP1.0 的API, 理论上可以运行在任何支持MIDP1.0的手机上。但由于显示效果的限制,最佳显示屏为128x128,如果你的手机显示屏与此大小差不太多,应该也可以运行游戏。

游戏下载

暂不提供,考虑在适当的时候开放源码,敬请关注
(2005-5-11) 今天开放本游戏源码下载,请到
http://www.javagarden.net:8080/Wiki.jsp?page=SourceCodeDownload