亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mgame.java

?? java2應用編程150例
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
  package mine;

  import java.util.*;
  import com.siemens.mp.io.*;
  import com.siemens.mp.game.*;
  import java.io.IOException;
  import javax.microedition.lcdui.*;

  public class MGame extends Canvas implements CommandListener
  {
      private static final int GRIDSIZE = 8;
      private static final int MINECOUNT = 15;

      private static Mine pMain;
      private static Display display;
      private static int Width, Height, selx, sely, leftbomb;
      private static byte grid[][];       // 用于存放掃雷數據
      private static boolean gameover;    // 是否結束

      private static Random rand;         // 產生隨機數

      private static ExtendedImage ExScreenImg;   // 擴展圖像層
      private static Graphics Exg;
      private static Image TitleImg, MineImg, fMineImg, HideImg, fHideImg, FlagImg, fFlagImg, NumImg[], fNumImg[];
      private static MelodyComposer melody;       // 音調

      // 定義菜單
      private static Command ContCmd = new Command("繼續游戲",Command.OK, 0);
      private static Command StartCmd = new Command("新游戲",Command.OK, 1);
      private static Command ExitCmd = new Command("退出",Command.EXIT, 2);
      private static Command HelpCmd = new Command("幫助信息",Command.OK, 3);
      private static Command OKCmd = new Command("確定",Command.OK, 0);

      final private static String openSnd="開啟聲音", closeSnd="關閉聲音", openVib="開啟振動", closeVib="關閉振動";
      private static Command SndCmd, VibCmd;

      public static boolean Snd, Vib;

      public MGame(Mine pmine)
      {
          pMain = pmine;
          Width = 88 / GRIDSIZE;
          Height = (getHeight()-1) / GRIDSIZE;

          grid = new byte[Height][Width];
          rand = new Random((new Date()).getTime());
          NumImg = new Image[8];
          fNumImg = new Image[8];

          gameover = true;
          int i;
          // 預先載入圖片
          try
          {
              TitleImg = Image.createImage("images/title.png");
              MineImg = Image.createImage("images/mine.png");
              fMineImg = Image.createImage("images/minef.png");
              HideImg = Image.createImage("images/hide.png");
              fHideImg = Image.createImage("images/hidef.png");
              FlagImg = Image.createImage("images/flag.png");
              fFlagImg = Image.createImage("images/flagf.png");
              for (i=1; i<=8; i++)
              {
                  NumImg[i-1] = Image.createImage("images/n"+i+".png");
                  fNumImg[i-1] = Image.createImage("images/n"+i+"f.png");
              }
          }
          catch(Exception exception){}

          // 初始化圖像緩存(寬度必須為8的倍數)
          ExScreenImg = new ExtendedImage(Image.createImage(104, getHeight()));
          Exg = ExScreenImg.getImage().getGraphics();
          melody = new MelodyComposer();

          Snd = true;
          Vib = true;
          /////////////////////////////////////////////
          // 讀取參數
          try
          {
              byte bflag[] = new byte[2];
              bflag[0] = bflag[1] = 1;
              File keyfile = new File();
              int fid = keyfile.open("para");
              if(keyfile.length(fid) > 0) keyfile.read(fid, bflag, 0, 2);
              Snd = (bflag[0] == 1);
              Vib = (bflag[1] == 1);
              keyfile.close(fid);
          }
          catch(IOException ioexception) { }
          catch(NullPointerException npe){ }
          //////////////////////////////////////////////

          if (Snd) SndCmd = new Command(closeSnd, Command.OK, 4);
          else SndCmd = new Command(openSnd, Command.OK, 4);
          if (Vib) VibCmd = new Command(closeVib, Command.OK, 5);
          else VibCmd = new Command(openVib, Command.OK, 5);

          // 添加菜單
          addCommand(StartCmd);
          addCommand(ExitCmd);
          addCommand(HelpCmd);
          addCommand(SndCmd);
          addCommand(VibCmd);

          // 畫標題
          Exg.drawImage(TitleImg,0,0,20);
      }

      public void paint(Graphics grap)
      {
          ExScreenImg.blitToScreen(0,0);    // 將圖像緩存內容在屏幕上顯示出來
      }

      protected void keyPressed(int kcode)  // 按鍵響應
      {
          if (gameover) return;

          int bomb = 0;
          int oldx = selx;
          int oldy = sely;
          switch(kcode)
          {
          case '1':     // 1,挖開
              System.gc();  // 先釋放無用的資源
              if (grid[sely][selx] >= 10 && grid[sely][selx] < 20)
              {
                  grid[sely][selx] -= 10;
                  if (grid[sely][selx] == 0) Expand(selx, sely);
              }
              else if (grid[sely][selx] < 10)
              {
                  if (!SafeExp(selx, sely)) bomb = 1;
              }
              break;

          case '3':     // 3,作標記
              System.gc();
              if (grid[sely][selx] >= 10)
              {
                  if (grid[sely][selx] < 20)
                  {
                      grid[sely][selx] += 10;
                      leftbomb --;
                  }
                  else
                  {
                      grid[sely][selx] -= 10;
                      leftbomb ++;
                  }
              }
              break;

          case '2':     // 2
          case -59:     //上鍵
              sely --;
              break;
          case '4':     // 4
          case -61:   // 左向鍵
              selx--;
              break;
          case '6':     // 6
          case -62:   // 右向鍵
              selx++;
              break;
          case '5':     // 5
          case '8':     // 8
          case -60:   // 下鍵
              sely++;
              break;
          }
          if (selx < 0) selx = 0;
          if (selx > Width-1) selx = Width-1;
          if (sely < 0) sely = 0;
          if (sely > Height-1) sely = Height-1;

          DrawBlock(oldx, oldy, false);
          if (bomb == 0)
              bomb = DrawBlock(selx, sely, true);
          else
              DrawBlock(selx, sely, true);

          Exg.setColor(0xffffff);
          Exg.fillRect(89, 26, 13, 13);
          Exg.setColor(0);
          Exg.drawString(""+leftbomb, 101, 26, Graphics.RIGHT | Graphics.TOP);

          if (bomb == 1)
          {
              gameover = true;
              SoundPlay(1);
              if (Vib) Vibrator.triggerVibrator(150);
              Exg.drawString("爆", 101, 39, Graphics.RIGHT | Graphics.TOP);
              Exg.drawString("炸", 101, 52, Graphics.RIGHT | Graphics.TOP);
          }
          if (Judge())
          {
              gameover = true;
              SoundPlay(0);
              Exg.drawString("成", 101, 39, Graphics.RIGHT | Graphics.TOP);
              Exg.drawString("功", 101, 52, Graphics.RIGHT | Graphics.TOP);
          }
          ExScreenImg.blitToScreen(0,0);
      }

      protected void keyRepeated(int kcode) //按鈕連按響應
      {
          if (gameover) return;

          int oldx = selx;
          int oldy = sely;
          switch(kcode)
          {
          case '2':
          case -59:   //up
              sely --;
              break;
          case '4':
          case -61:   // LEFT
              selx--;
              break;
          case '6':
          case -62:   // RIGHT
              selx++;
              break;
          case '5':
          case '8':
          case -60:   // DOWN
              sely++;
              break;
          }
          if (selx < 0) selx = 0;
          if (selx > Width-1) selx = Width-1;
          if (sely < 0) sely = 0;
          if (sely > Height-1) sely = Height-1;

          DrawBlock(oldx, oldy, false);
          DrawBlock(selx, sely, true);
          ExScreenImg.blitToScreen(0,0);
      }

      // 菜單選擇響應
      public void commandAction(Command cmd, Displayable displayable)
      {
          boolean savepara = false;
          if (cmd == ExitCmd)
              pMain.destroyApp(true);
          else if (cmd == StartCmd)
          {
              newGame();
          }
          else if (cmd == HelpCmd)
          {
              Form pHelp = new Form("掃雷 v0.1.0");
              pHelp.append("\u00A9Siemens Shanghai Mobile Communication Ltd.\n\n"
                  +"按鍵說明:\n2、4、6、8-移動焦點,1-挖,3-做標記。");
              pHelp.addCommand(OKCmd);
              display.setCurrent(pHelp);
              pHelp.setCommandListener(this);
          }
          else if (cmd == OKCmd)
          {
              activate(display);
          }
          else if (cmd == SndCmd)
          {
              Snd = !Snd;
              removeCommand(SndCmd);
              if (Snd) SndCmd = new Command(closeSnd,Command.OK, 4);
              else SndCmd = new Command(openSnd,Command.OK, 4);
              addCommand(SndCmd);
              savepara = true;
          }
          else if (cmd == VibCmd)
          {
              Vib = !Vib;
              removeCommand(VibCmd);
              if (Vib) VibCmd = new Command(closeVib,Command.OK, 5);
              else VibCmd = new Command(openVib,Command.OK, 5);
              addCommand(VibCmd);
              savepara = true;
          }

          if (savepara)
          {
              /////////////////////////////////////////////
              // 寫入參數
              try
              {
                  byte bflag[] = new byte[2];
                  File keyfile = new File();
                  int fid = keyfile.open("para");
                  bflag[0] = (byte)(Snd ? 1 : 0);
                  bflag[1] = (byte)(Vib ? 1 : 0);
                  keyfile.write(fid, bflag, 0, 2);
                  keyfile.close(fid);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久亚洲精品石原莉奈 | 26uuu欧美| 午夜天堂影视香蕉久久| 一本一道波多野结衣一区二区| 国产人成一区二区三区影院| 欧美一级二级三级乱码| 一色屋精品亚洲香蕉网站| 成人教育av在线| 国产精品丝袜91| 色国产精品一区在线观看| 亚洲美女区一区| 制服.丝袜.亚洲.中文.综合| 日本欧美一区二区在线观看| 日韩久久久久久| 国产69精品久久99不卡| 国产精品私房写真福利视频| 91在线丨porny丨国产| 亚洲毛片av在线| 欧美久久一区二区| 国产高清久久久| 一二三区精品视频| 日韩欧美中文字幕一区| 成人av电影在线播放| 亚洲1区2区3区视频| 久久久久久久一区| 在线精品视频小说1| 久久av老司机精品网站导航| 国产精品美女一区二区| 欧美一区二区三区视频在线| 懂色av噜噜一区二区三区av| 亚洲一区二区精品3399| 2014亚洲片线观看视频免费| 黄色成人免费在线| eeuss鲁一区二区三区| 亚洲国产欧美另类丝袜| 久久综合久久久久88| 欧美三电影在线| 99re这里只有精品首页| 精品一区二区三区日韩| 亚洲无线码一区二区三区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产亚洲精品超碰| 欧美一区二区三区婷婷月色| 97精品久久久午夜一区二区三区 | 欧美亚洲国产怡红院影院| 国产精品夜夜爽| 国产毛片精品视频| 久久国产精品99久久久久久老狼| 亚洲综合视频网| 亚洲成人av福利| 亚洲一区二区三区四区五区黄| 国产精品久久久久桃色tv| 国产三级三级三级精品8ⅰ区| 日韩精品最新网址| 中文字幕一区二区三区四区| 91精品国产综合久久精品app| 欧美日韩成人综合天天影院 | 久久99精品久久久| 国内精品嫩模私拍在线| 黄色小说综合网站| 国产高清不卡二三区| 成人午夜视频在线| 一本一道综合狠狠老| 欧美午夜精品久久久| 91精品国产91久久久久久最新毛片 | 91在线视频网址| 91久久精品国产91性色tv| 91精品国产91久久久久久一区二区| 2020日本不卡一区二区视频| 亚洲午夜精品一区二区三区他趣| 亚洲一区二区三区国产| 久久99久久精品| 一本一道久久a久久精品综合蜜臀| 欧美日韩一本到| 久久久一区二区| 亚洲一区电影777| 国精产品一区一区三区mba桃花| 国产成人精品午夜视频免费| 99精品桃花视频在线观看| 日韩一区二区精品在线观看| 国产精品萝li| 久久综合色之久久综合| 中文字幕一区日韩精品欧美| 日韩精品久久理论片| av午夜精品一区二区三区| 欧美videos大乳护士334| 一区二区三区四区乱视频| 国模套图日韩精品一区二区| 欧美日韩在线三级| 亚洲欧美自拍偷拍| 丁香婷婷深情五月亚洲| 精品国产成人系列| 人人超碰91尤物精品国产| 欧美三级一区二区| 亚洲与欧洲av电影| 91理论电影在线观看| 国产精品福利影院| 不卡一区二区在线| 国产精品乱码一区二区三区软件 | 日韩一区二区影院| 日韩精品国产欧美| 在线电影院国产精品| 午夜精品久久久| 7777精品久久久大香线蕉| 天天影视涩香欲综合网 | 日韩美女在线视频| 精品一区二区三区在线播放| 欧美电影免费观看高清完整版在线| 日本在线播放一区二区三区| 欧美日韩精品一区视频| 国产精品久久久久影院色老大| 粉嫩aⅴ一区二区三区四区 | 国产成人一级电影| 国产精品国产馆在线真实露脸| 成人午夜激情视频| 亚洲综合一区二区三区| 欧美日本不卡视频| 不卡电影一区二区三区| 亚洲视频每日更新| 日韩一区二区三| 成人免费黄色在线| 亚洲gay无套男同| 国产精品丝袜黑色高跟| 欧美久久久久中文字幕| 国产精品影视在线| 亚洲午夜久久久久久久久电影网 | 国产女人18毛片水真多成人如厕| 97精品久久久久中文字幕| 青青草国产成人av片免费| 国产精品久久毛片| 日韩欧美国产综合一区| 色综合天天综合色综合av | 中文字幕亚洲精品在线观看| 91精品国产色综合久久不卡电影| 成人av网站在线观看| 韩国成人精品a∨在线观看| 日韩一级黄色大片| 成人教育av在线| 国产在线视频精品一区| 亚洲一区在线播放| 亚洲欧美在线观看| 亚洲国产成人自拍| 26uuu亚洲| 精品国产精品网麻豆系列| 欧美一区二区女人| 在线看日韩精品电影| 日本高清无吗v一区| www.欧美精品一二区| 成人精品国产福利| aaa欧美色吧激情视频| www.亚洲色图.com| av电影天堂一区二区在线观看| 成人一级视频在线观看| 成人在线一区二区三区| 91在线你懂得| 欧美午夜片在线看| 欧美日韩精品欧美日韩精品| 欧美日韩国产影片| 欧美嫩在线观看| 久久香蕉国产线看观看99| 国产欧美一区二区三区沐欲| 国产欧美一区二区精品仙草咪| 国产午夜精品一区二区| 亚洲欧洲美洲综合色网| 一区二区三区中文免费| 亚洲成av人片一区二区三区| 日本不卡的三区四区五区| 精品一区二区在线观看| 波多野结衣的一区二区三区| 色999日韩国产欧美一区二区| 欧美日韩高清一区二区| 欧美一级欧美三级在线观看| 国产日韩欧美精品综合| 亚洲国产精品久久艾草纯爱| 国产一区二区免费在线| 久久超级碰视频| 国产99久久久久久免费看农村| 91精彩视频在线| 久久亚洲精精品中文字幕早川悠里 | 国产成人日日夜夜| 欧美三级日韩在线| 久久久高清一区二区三区| 亚洲一区二区三区视频在线播放| 久久99精品国产| 欧美在线999| 欧美激情综合五月色丁香小说| 同产精品九九九| 日本丰满少妇一区二区三区| 精品粉嫩aⅴ一区二区三区四区| 伊人性伊人情综合网| 不卡的av电影| 国产精品久久久久久福利一牛影视| 精品一区二区在线视频| 欧美精三区欧美精三区| 亚洲高清免费在线| 欧美午夜电影在线播放| 亚洲欧美日韩国产一区二区三区 | 欧美亚洲综合久久| 亚洲精品日韩专区silk| 91小宝寻花一区二区三区|