⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game1.java~1~

📁 J2ME超酷三子棋游戏代码,提供给大家参考!
💻 JAVA~1~
字号:
package game;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: </p> * @author not attributable * @version 1.0 */import javax.microedition.midlet.*;import javax.microedition.lcdui.*;import java.util.Random;public class Game1 {//所有可能取胜的位置  private final int[] WINS=      {        //水平位置        bit(0)|bit(1)|bit(2),        bit(3)|bit(4)|bit(5),        bit(6)|bit(7)|bit(8),        //垂直位置        bit(0)|bit(3)|bit(6),        bit(1)|bit(4)|bit(7),        bit(2)|bit(5)|bit(8),        //俩对角线        bit(0)|bit(4)|bit(8),        bit(2)|bit(4)|bit(6)  };      //所有可能成为平局的位置      private final int DRAWN_GAME= bit(0)|bit(1)|bit(2)| bit(3)|bit(4)|bit(5)|bit(6)|bit(7)|bit(8);  private int playerState;  private int computerState;  private Random aRandom;  public Game1(Random _aRandom) {    aRandom=_aRandom;    initialize();  } public void initialize() {   playerState=0;   computerState=0; } //判断方块是否空闲 public boolean  isFree(int position) {   int bit=bit(position);   return(((playerState&bit)==0)&&((computerState&bit)==0));//?????????? } public void makePlayerMove(int position) {   playerState|=bit(position);//??????? } /*     计算机移动的策略;分三步第一首先看能否取胜,第二看是否要阻止玩家,第三则随机处理      */public int makeComputerMove(){   int move=getWinningComputerMove();   if(move==-1)   {     move=getRequiredBlockingComputerMove();     if(move==-1)     {       move=getRandomComputerMove();     }     }     computerState|=bit(move);     return move;   }   //判断游戏是否结束,   public boolean isGameOver()   {     return isPlayerWin()|isComputerWin()|isGameDrawn();     }     //玩家获胜     public boolean isPlayerWin()     {       return isWin(playerState);     }     //计算机获胜     public boolean isComputerWin()     {       return isWin(computerState);     }     //平局     public boolean isGameDrawn()     {       return (playerState|computerState)==DRAWN_GAME;     }     //让计算机获胜的移动方法     public int getWinningComputerMove()     {       int move=-1;       for(int i=0;i<9;i++)       {         if(isFree(i)&&isWin(computerState|bit(i)))         {           move=i;           break;         }       }       return move;     }     //防止玩家获胜的移动方法     public int getRequiredBlockingComputerMove()     {       int move=-1;       for(int i=0;i<9;i++)      {        if(isFree(i)&&isWin(playerState|bit(i)))        {          move=i;          break;        }      }      return move;     }     //计算机随机移动     public int getRandomComputerMove()     {       int move=-1;       int numFreeSquares=0;       for(int i=0;i<9;++i)       {         if(isFree(i))         {           numFreeSquares++;         }       }       if(numFreeSquares>0)       {         int pick=((aRandom.nextInt()<<1)>>>1)%numFreeSquares;         for(int i=0;i<9;i++)         {           if(isFree(i))           {             if(pick==0)             {               move=i;               break;             }             pick--;             }           }         }         return move;       }       //判断获胜的方法       public boolean isWin(int State)       {         boolean isWinner=false;         for(int i=0;i<WINS.length;i++)         {           if((State&WINS[i])==WINS[i])              {               isWinner=true;               break;              }           }        return isWinner;         }         public int bit(int i)         {           return 1<<i;         }       }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -