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

📄 j2meai.java

📁 一本介绍手机游戏开发的书中的源代码
💻 JAVA
字号:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.Random;

public class j2meAI extends MIDlet
{
   Display display;
   canvasAI canvasai;

    public j2meAI()
    {
      canvasai=new canvasAI();
      display=Display.getDisplay(this);
    }

   public void startApp()
   {
      display.setCurrent(canvasai);
   }

   public void pauseApp(){}

   public void destroyApp(boolean unconditional){}

   class canvasAI extends Canvas
   {
     int i;
     int j;
     int viewAI;
     int picture;
     int goX;
     int goY;
     int judgeGO;
     int randNum;
     boolean gameOver; 
     Random gameRand;
     runMouse runmouse;
     finalRoad finalroad;
     Image[] AIImage=new Image[6];
     int[][] gomap={{0,1,0,1,1,0,0,0,0,0},{0,1,0,0,1,1,1,0,1,0},{0,1,1,0,1,0,0,0,1,1},
                    {0,0,0,0,1,0,1,0,0,0},{0,1,0,1,1,0,1,1,1,0},{0,1,0,0,0,0,1,0,1,0},
                    {1,1,0,1,0,1,1,0,1,0},{0,0,0,1,0,0,0,0,0,1},{0,1,1,1,0,1,1,1,0,1},
                    {0,0,0,1,0,0,0,1,0,100}
                   };

     public canvasAI()
     {
        gameRand=new Random();
        try{
            AIImage[0]=Image.createImage("/wall.png");
            AIImage[1]=Image.createImage("/mouse1.png");
            AIImage[2]=Image.createImage("/mouse2.png");
            AIImage[3]=Image.createImage("/mouse3.png");
            AIImage[4]=Image.createImage("/mouse4.png");
            AIImage[5]=Image.createImage("/exit.png");
        }catch(Exception ex){}
        init();
     }

     public void keyPressed(int keyCode)
     {
        int gameKey=getGameAction(keyCode);
        if(viewAI==0)
           switch(gameKey)
           {
             case FIRE:  // '5'
                  runmouse=new runMouse();
                  runmouse.start();
                  runmouse=null;
                  break;
           }
        else if(viewAI==10)
           switch(gameKey)
           {
             case FIRE:  // '5'
                  viewAI=0;
                  init();
                  finalroad=new finalRoad();
                  finalroad.start();
                  finalroad=null;
                  break;
           }
     }

     public void paint(Graphics g)
     {
        g.setColor(0xffffff);
        g.fillRect(0,0,getWidth(),getHeight());
        g.setColor(0xff0000);
        g.drawRect(4,3,170,170);
        for(i=0;i<10;i++)
          for(j=0;j<10;j++)
            if(gomap[i][j]==1)
              g.drawImage(AIImage[0], 4+j*17, 3+i*17, Graphics.LEFT | Graphics.TOP);
            else if(gomap[i][j]==99){
              g.setColor(0x00ff00);
              g.fillRect(4+17*j,3+17*i,17,17);
            }
          g.drawImage(AIImage[5], 4+9*17, 3+9*17, Graphics.LEFT | Graphics.TOP);
          if(viewAI==0){
            g.drawImage(AIImage[picture], 4+goX*17, 3+goY*17, Graphics.LEFT | Graphics.TOP); 
          }
           else if(viewAI==10){
            g.drawImage(AIImage[picture], 157, 156, Graphics.LEFT | Graphics.TOP);
            g.setColor(0x0000ff);
            g.fillRect(40,50,100,50);
            g.setColor(0xff0000);
            g.drawString("再看老鼠行径", 60, 60, Graphics.LEFT | Graphics.TOP); 
          }
     }

     private void init()
     {
        gomap[0][0]=2;
        goX=goY=0;
        picture=1;
        judgeGO=2;
     }

     private void checkRoad()
     {
        if(goY+1<=9 && goY-1>=0 && goX+1<=9 && gomap[goY+1][goX]==0 && gomap[goY-1][goX]==0 && gomap[goY][goX+1]==0)
        {
           randNum=(int)Math.abs(gameRand.nextInt()%3);
           judgeGO++;
           if(randNum==0)
           {
              gomap[goY+1][goX]=judgeGO;
              picture=1;
              goY++;
           }
            else if(randNum==1){
              gomap[goY-1][goX]=judgeGO;
              picture=2;
              goY--;
           }
            else{
              gomap[goY][goX+1]=judgeGO;
              picture=4;
              goX++;
           }
        }
         else if(goY+1<=9 && goX-1>=0 && goX+1<=9 && gomap[goY+1][goX]==0 && gomap[goY][goX-1]==0 && gomap[goY][goX+1]==0){
           randNum=(int)Math.abs(gameRand.nextInt()%3);
           judgeGO++; 
           if(randNum==0)
           {
              gomap[goY+1][goX]=judgeGO;
              picture=1;
              goY++;
           } 
            else if(randNum==1){
              gomap[goY][goX-1]=judgeGO;
              picture=3;
              goX--;
           }
            else{
              gomap[goY][goX+1]=judgeGO;
              picture=4;
              goX++;
           }
        }
         else if(goY+1<=9 && goY-1>=0 && goX-1>=0 && gomap[goY-1][goX]==0 && gomap[goY+1][goX]==0 && gomap[goY][goX-1]==0){
           randNum=(int)Math.abs(gameRand.nextInt()%3);
           judgeGO++;
           if(randNum==0)
           {
              gomap[goY-1][goX]=judgeGO;
              picture=2;
              goY--;
           }
            else if(randNum==1){
              gomap[goY+1][goX]=judgeGO;
              picture=1;
              goY++;
           }
            else{
              gomap[goY][goX-1]=judgeGO;
              picture=3;
              goX--;
           }
        }
         else if(goY-1>=0 && goX+1<=9 && goX-1>=0 && gomap[goY-1][goX]==0 && gomap[goY][goX+1]==0 && gomap[goY][goX-1]==0){
           randNum=(int)Math.abs(gameRand.nextInt()%3); 
           judgeGO++;
           if(randNum==0)
           {
              gomap[goY-1][goX]=judgeGO;
              picture=2;
              goY--;
           }
            else if(randNum==1){
              gomap[goY][goX+1]=judgeGO;
              picture=4;
              goX++; 
           }
            else{
              gomap[goY][goX-1]=judgeGO;
              picture=3;
              goX--;
           }
        }
         else if(goY+1<=9 && goX+1<=9 && gomap[goY+1][goX]==0 && gomap[goY][goX+1]==0){ //

⌨️ 快捷键说明

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