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

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲人成中文字幕在线观看| 天天摸天天碰成人免费视频| 国产L精品国产亚洲区久久| 亚洲第一成人在线| 24小时免费直播在线观看| 亚洲高清中文字幕免费| 成人免费无码大片A毛片抽搐| 中文字幕在线观看亚洲视频| 免费av欧美国产在钱| 亚洲一日韩欧美中文字幕在线| 毛片a级毛片免费观看品善网| 亚洲伊人久久大香线蕉AV| 国产真人无遮挡作爱免费视频| 激情小说亚洲色图| 丁香五月亚洲综合深深爱| 你是我的城池营垒免费观看完整版| 亚洲精品卡2卡3卡4卡5卡区| 91福利免费体验区观看区| 亚洲AV成人一区二区三区在线看 | 毛片在线全部免费观看| 久久精品国产精品亚洲色婷婷| 久久永久免费人妻精品下载| 亚洲免费闲人蜜桃| 四虎成人精品在永久免费 | 久久国产精品2020免费m3u8| 亚洲天堂一区二区三区四区| 免费看大黄高清网站视频在线| 一区二区三区视频免费观看| 亚洲成年轻人电影网站www| 欧洲黑大粗无码免费| 色老头综合免费视频| 亚洲综合自拍成人| 超pen个人视频国产免费观看| 中文字幕永久免费| 亚洲一区精品视频在线| 亚洲AV无码乱码在线观看| 免费无码VA一区二区三区| 亚洲sm另类一区二区三区| 亚洲AV无码精品无码麻豆| 日本不卡高清中文字幕免费| 国产无遮挡无码视频免费软件 |