<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 国产在线a免费观看| 乱爱性全过程免费视频| 亚洲视频一区网站| 亚洲成在人天堂一区二区| 亚洲AV乱码久久精品蜜桃| 久久亚洲国产欧洲精品一| 亚洲精品乱码久久久久66| 亚洲伊人成无码综合网 | 毛片a级毛片免费播放100| 国产91色综合久久免费分享| 成人浮力影院免费看| 毛片免费观看网址| 韩国二级毛片免费播放| 免费一级做a爰片性色毛片| 久久99亚洲综合精品首页| 亚洲精品无码乱码成人| 内射少妇36P亚洲区| 亚洲中文字幕久在线| 亚洲人成色在线观看| 国产午夜亚洲精品不卡电影| a级毛片免费观看在线| 两个人的视频www免费| 日本免费大黄在线观看| 59pao成国产成视频永久免费| 99无码人妻一区二区三区免费| 国产v精品成人免费视频400条| 在线免费观看污网站| 免费一级成人毛片| 亚洲国产精品成人久久| 337p日本欧洲亚洲大胆色噜噜| 亚洲av无码专区在线| 无忧传媒视频免费观看入口| a在线观看免费视频| 国产成人精品免费视频网页大全| 成人免费视频一区二区三区| 国产一级一片免费播放i| 国产亚洲精品久久久久秋霞 | 性盈盈影院免费视频观看在线一区| 日韩免费高清一级毛片在线| 亚洲日本va午夜中文字幕久久| 亚洲成AV人片一区二区|