WEB开发网
开发学院WEB开发Jsp MIDP1.0小游戏入门-五子棋1.1 阅读

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

 2008-01-05 08:54:26 来源:WEB开发网   
核心提示:作者:yinowl2005年1月1.1版注:完善了游戏输赢的判定,由于考虑的比较匆忙,MIDP1.0小游戏入门-五子棋1.1,没有非常仔细地考量算法的优劣程度,目的主要对游戏的输赢进行一种实现,变量归1(应为当前棋子肯定是当前下棋方下完的棋子)并进行下一个方向或角度,在判定是否是当前方时,嵌入到程序中,给大家做为一个参

作者: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);

Tags:MIDP 小游戏 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接