<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Kira-2006
    -僅僅是一陣風也罷了,偏偏是這樣永恒, 僅僅是一場夢也罷了,偏偏是如此的真實,
    posts - 4,comments - 7,trackbacks - 0

       偶學習java也已經有半年的時間了,但是總覺得沒學到什么東西,有沒有遇到某位高人指點一下(沒那個命).感覺都有一點學不下去了.最近開始試著寫一些小的游戲,想增加一下自己的學習java的興趣....偶的第一個小游戲--掃雷...寫的還不是那么好,有一些功能還沒有用上.希望那位大蝦看到后能指點一下小弟........順便教偶一下java的學習之道..........

     
    //ExtendButton.java
    import java.awt.*;

    public class ExtendButton extends Button
    {
     private int Button_Position;
     private boolean Button_Status;
     private boolean Button_Visit;
     
     public void setPosition(int newPos)
     {
      Button_Position = newPos;
     }
     public int getPosition()
     {
      return Button_Position;
     }
     public void setStatus(boolean newStatus)
     {
      Button_Status = newStatus;
     }
     public boolean getStatus()
     {
      return Button_Status;
     }
     public void setVisit(boolean newVisit)
     {
      Button_Visit = newVisit;
     }
     public boolean getVisit()
     {
      return Button_Visit;
     }
    }



    //Game.java

    /**
     * AWT Sample application
     *
     * @author
     * @version 1.00 06/02/27
     */
    import java.awt.*;
    import java.awt.event.*;
    //import java.util.Random;
    import javax.swing.JOptionPane;

    public class Game implements ActionListener
    {
     private Frame frame;
     private MenuBar mb;
     private int initRow;
     private int initColumn;
     ExtendButton[] myButton;
     public Game()
     {
      frame = new Frame("掃雷 @ G.L");
      mb = new MenuBar();
      frame.setLayout(new GridLayout(10,10));
      
      setMenu(frame,mb);
      
      frame.pack();
      frame.setSize(200,200);
      frame.setVisible(true);
     }
     public void setMenu(Frame frame,MenuBar menuBar)
     {
      Menu m_Edit = new Menu("游戲");
      
      MenuItem mi_chuji = new MenuItem("初級");
      MenuItem mi_zhongji = new MenuItem("中級");
      MenuItem mi_gaoji = new MenuItem("高級");
      MenuItem mi_Exit = new MenuItem("退出",new MenuShortcut(KeyEvent.VK_X));
      
      m_Edit.add(mi_chuji);
      m_Edit.add(mi_zhongji);
      m_Edit.add(mi_gaoji);
      m_Edit.addSeparator();
      m_Edit.add(mi_Exit);
      
      for(int i = 0;i < m_Edit.getItemCount();i++)
      {
       m_Edit.getItem(i).addActionListener(this);
      }
      mb.add(m_Edit);
      frame.setMenuBar(mb);
     }
     public void initGame(int bombCount,int row,int column,int width,int height)
     {
      initRow = row;
      initColumn = column;
      frame.setLayout(new GridLayout(row,column));
      frame.setSize(width,height);
      frame.setVisible(true);
      
      myButton = new ExtendButton[row*column];
      for(int i = 0;i < row*column;i++)
      {
       myButton[i] = new ExtendButton();
       myButton[i].setPosition(i);
       myButton[i].setStatus(false);
       myButton[i].setVisit(false);
       myButton[i].addActionListener(this);
       frame.add(myButton[i]);
      }
      
      System.gc();
      setBomb(bombCount);
     }
     public void setBomb(int bombCount)
     {
      int count = 0;
      while(count != bombCount)
      {
       int temp = (int)(Math.random()*initRow*initColumn);
       //Random cnd = new Random();
       //int temp = cnd.nextInt(initRow*initColumn);
       if(!myButton[temp].getStatus())
       {
        myButton[temp].setStatus(true);
        count++;
       }
      }
     }
     public void showBomb()
     {
      for(int i = 0;i < initRow*initColumn;i++)
      {
          if(myButton[i].getStatus())
             myButton[i].setBackground(Color.BLACK);
      }
     }
     public void checkButton(ExtendButton tempButton)
     {
      int temp = 0;
         int[] circleNum = new int[8];
      
      if(!tempButton.getStatus())
      {
       circleNum[0] = tempButton.getPosition()-initColumn;
       circleNum[0] = (circleNum[0]<0) ? -1:circleNum[0];
       circleNum[1] = tempButton.getPosition()-initColumn+1;
       circleNum[1] = (circleNum[1]<0||circleNum[1]%initColumn==0) ? -1:circleNum[1];
       circleNum[2] = tempButton.getPosition()+1;
       circleNum[2] = (circleNum[2]>(initRow*initColumn-1)||circleNum[2]%initColumn==0) ? -1:circleNum[2];
       circleNum[3] = tempButton.getPosition()+initColumn+1;
       circleNum[3] = (circleNum[3]>(initRow*initColumn-1)||circleNum[3]%initColumn==0) ? -1:circleNum[3];
       circleNum[4] = tempButton.getPosition()+initColumn;
       circleNum[4] = (circleNum[4]>(initRow*initColumn-1)) ? -1:circleNum[4];
       circleNum[5] = tempButton.getPosition()+initColumn-1;
       circleNum[5] = (circleNum[5]>(initRow*initColumn-1)||tempButton.getPosition()%initColumn==0) ? -1:circleNum[5];
       circleNum[6] = tempButton.getPosition()-1;
       circleNum[6] = (circleNum[6]<0||tempButton.getPosition()%initColumn==0) ? -1:circleNum[6];
       circleNum[7] = tempButton.getPosition()-initColumn-1;
       circleNum[7] = (circleNum[7]<0||tempButton.getPosition()%initColumn==0) ? -1:circleNum[7];
      }
      else if(tempButton.getStatus())
      {
         JOptionPane.showMessageDialog( null, "You Failed!", "Dialog",JOptionPane.INFORMATION_MESSAGE );
               this.showBomb();
               return;
      }
      if(!tempButton.getStatus() && !tempButton.getVisit())
      {
       for(int i = 0;i<8;i++)
       {
          if((circleNum[i]!=-1) && myButton[circleNum[i]].getStatus())
                temp++;
       }
       if(temp>0)
       {
        tempButton.setVisit(true);
        tempButton.setLabel(String.valueOf(temp));
       }
       else if(temp==0)
       {
        tempButton.setVisit(true);
        tempButton.setBackground(Color.GREEN);
        for(int j = 0;j<8;j++)
        {
         if(circleNum[j]!=-1 && !myButton[circleNum[j]].getStatus())
            checkButton(myButton[circleNum[j]]);
        }
       }
      }
     }
     public void checkStop()
     {
      boolean bn=true;
      for(int i = 0;i < initRow*initColumn;i++)
      {
       if(!myButton[i].getVisit())
       {
        if(!myButton[i].getStatus())
          bn=false;
       }
      }
      if(bn)
      {
       JOptionPane.showMessageDialog( null, "You Winning!", "Dialog",JOptionPane.INFORMATION_MESSAGE );
       return;
      }
     }
     public void actionPerformed(ActionEvent ae)
     {
      ExtendButton extendButton;
      if(ae.getSource() instanceof ExtendButton)
      {
       extendButton = (ExtendButton)ae.getSource();
       checkButton(extendButton);
       checkStop();
      }
          else if(ae.getSource() instanceof MenuItem)
      {
       if(ae.getActionCommand()=="初級")
       {
        initGame(10,9,9,250,270);
       }
       if(ae.getActionCommand()=="中級")
       {
         initGame(40,16,16,480,500);
       }  
       else if(ae.getActionCommand()=="高級")
       {
        initGame(99,16,30,700,500);
       }
       else if(ae.getActionCommand()=="退出")
       {
        frame.dispose();
       }
      }
     }
     public static void main(String[] args)
     {
      Game game = new Game();
      new WindowAdapter()
      {
       public void windowClosing(WindowEvent e)
       {
        System.exit(0);
       }
      };
     }
    }

    posted on 2006-03-01 10:21 Kira-2006 閱讀(152) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品国产日韩无码AV永久免费网 | 国产精品久久久久影院免费| 亚洲无人区视频大全| 一级成人a毛片免费播放| 亚洲国产一区在线| 国产曰批免费视频播放免费s| 亚洲视频在线不卡| 曰曰鲁夜夜免费播放视频| 亚洲人成在线精品| 日韩精品视频免费网址| 男男gvh肉在线观看免费| 亚洲国产午夜中文字幕精品黄网站| 免费人成大片在线观看播放| 国产精品亚洲w码日韩中文| 中文字幕无线码中文字幕免费 | 亚洲国产电影av在线网址| 四虎影视在线看免费观看| 亚洲精品无码av人在线观看| 97久久免费视频| 亚洲午夜精品久久久久久app| 色www永久免费视频| 一级毛片正片免费视频手机看| 国产精品亚洲成在人线| aⅴ免费在线观看| 久久亚洲欧美国产精品| 久久久久亚洲精品中文字幕| 99re视频精品全部免费| tom影院亚洲国产一区二区| 亚洲国产成人久久综合碰| 日韩视频在线观看免费| 亚洲午夜福利在线视频| 亚洲乱码一区二区三区在线观看 | 亚洲爆乳无码专区www| 怡红院亚洲怡红院首页| 最近免费字幕中文大全视频 | 久久精品国产亚洲香蕉| 成人无遮挡毛片免费看| 成人免费av一区二区三区| 亚洲国产模特在线播放| 国产亚洲精品无码拍拍拍色欲| 国产成人精品免费视频大|