首页 > 学院 > 开发设计 > 正文

MIDP1.0小游戏入门-五子棋1.1

2019-11-18 14:54:31
字体:
来源:转载
供稿:网友

作者:yinowl
2005年1月

1.1版注:完善了游戏输赢的判定,由于考虑的比较匆忙,没有非常仔细地考量算法的优劣程度,目的主要对游戏的输赢进行一种实现,嵌入到程序中,给大家做为一个参考,由于其他内容和1.0版完全相同,我就把输赢实现这一节提到最前面,后面再补上所有的内容。

游戏输赢
最后要说的是判定游戏的输赢。我的思路是,每次在玩家着棋(按下5)时,判定棋局的输赢,然后用一个 Alert 显示哪一方赢了以及当前的比分,返回后开始新的一局。判定的逻辑是,在当前所下的棋子的0/180度、90/270度、45/225度、135/315度四个方向上分别往两头按照由近至远的顺序判定各5个棋子是否是当前下棋方的棋子,假如是则累加到一个变量上,假如在到达5之前出现“否”的情况,则中止在这一方向或这一角度的判定,变量归1(应为当前棋子肯定是当前下棋方下完的棋子)并进行下一个方向或角度。在判定是否是当前方时,用当前 isPlayer1 变量和棋子对象的 isPlayer1 变量进行比交。源代码如下:

    int player1win,player2win;    PRotected synchronized void keyPressed(int keyCode) {                ...                else if (action == Canvas.FIRE) {            if(chesses[selectedY][selectedX]==null){                chesses[selectedY][selectedX]=new Chesses(this.isPlayer1);                if(checkWin()){                    String winner;                    if(isPlayer1){                        winner="白方胜利";                        player1win++;                    }                    else{                        winner="红方胜利";                        player2win++;                    }                    try{                        Thread.sleep(3000);

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表