数字移动游戏

 

/* 这个小游戏很简单,估计谁都能看懂,就是一个人工操作的八数码问题;
 * 通过移动数字使最后八个数字安一定顺序排列;
 *里边可能有问题,希望朋友没给点看意见;
 *谢谢!
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class GameTest1{
 public static void main (String[] args){
  gameFrame game=new gameFrame();
  game.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  game.setVisible(true);
  game.setResizable(false);
  
 }
}

/**game frame*/
 class gameFrame extends JFrame{
 public gameFrame( ){
  setTitle("play a game");
  setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
  
  gamePanel panel=new gamePanel();
     add(panel); 
  
 }
 public static int DEFAULT_WIDTH=300;
 public static int DEFAULT_HEIGHT=300;
}

class gamePanel extends JPanel{
 public gamePanel( ){
  
  setLayout(new BorderLayout()) ;
  panel=new JPanel();
  panel.setLayout(new GridLayout(3,3));
  add(panel);
     for (int i=0;i<panel2.length;i++){
       panel2[i]=new JPanel();
       panel2[i].setLayout(new BorderLayout());
        }
  MouseMotionListener  dragButton=new dragButtonListener( );
  
  addButton("1",panel2[0],dragButton);
  panel.add(panel2[1]);
  panel2[1].setVisible(false); 
  addButton("3",panel2[2],dragButton);
  
  addButton("8",panel2[3],dragButton);
  addButton("5",panel2[4],dragButton);
  addButton("6",panel2[5],dragButton);
  
  addButton("2",panel2[6],dragButton);
  addButton("4",panel2[7],dragButton);
  addButton("7",panel2[8],dragButton);
  
 } 

 private void addButton(String label,JPanel panel3,MouseMotionListener listener){
  JButton button=new JButton(label);
  button.addMouseMotionListener(listener);
  panel3.setLayout(new BorderLayout());
  panel3.add(button);
  panel.add(panel3);
 }
 
 private class dragButtonListener implements MouseMotionListener{
  
  public void mouseDragged(MouseEvent event){
      int i=panel.getComponentCount();
       for(int j=0;j<i;j++){
        if(event.getComponent().getParent()==panel.getComponent(j)){
         if(j==0){
          if(!panel.getComponent(1).isVisible()){
           panel2[j].setVisible(false);
              panel2[1].add(event.getComponent());
              panel2[1].setVisible(true);
              event.setSource(new Object());
             
          }
          else if(!panel.getComponent(3).isVisible()) {
            panel2[j].setVisible(false);
              panel2[3].add(event.getComponent());
              panel2[3].setVisible(true);
              event.setSource(new Object());
          }
          } 
         if(j==1){
          if(!panel.getComponent(0).isVisible()){
           panel2[j].setVisible(false);
              panel2[0].add(event.getComponent());
              panel2[0].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(2).isVisible()) {
           panel2[j].setVisible(false);
              panel2[2].add(event.getComponent());
              panel2[2].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(4).isVisible()){
           panel2[j].setVisible(false);
              panel2[4].add(event.getComponent());
              panel2[4].setVisible(true);
              event.setSource(new Object());
          }
          
         }        
             
         if(j==2){
          if(!panel.getComponent(1).isVisible()){
           panel2[j].setVisible(false);
              panel2[1].add(event.getComponent());
              panel2[1].setVisible(true);
              event.setSource(new Object());  
          }
          else if(!panel.getComponent(5).isVisible()) {
            panel2[j].setVisible(false);
              panel2[5].add(event.getComponent());
              panel2[5].setVisible(true);
              event.setSource(new Object());
          }
         } 
         
         if(j==3){
          if(!panel.getComponent(0).isVisible()){
           panel2[j].setVisible(false);
              panel2[0].add(event.getComponent());
              panel2[0].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(4).isVisible()) {
           panel2[j].setVisible(false);
              panel2[4].add(event.getComponent());
              panel2[4].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(6).isVisible()){
           panel2[j].setVisible(false);
              panel2[6].add(event.getComponent());
              panel2[6].setVisible(true);
              event.setSource(new Object());
          }
         }
         
         if(j==4){
          if(!panel.getComponent(1).isVisible()){
           panel2[j].setVisible(false);
              panel2[1].add(event.getComponent());
              panel2[1].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(3).isVisible()) {
           panel2[j].setVisible(false);
              panel2[3].add(event.getComponent());
              panel2[3].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(5).isVisible()){
           panel2[j].setVisible(false);
              panel2[5].add(event.getComponent());
              panel2[5].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(7).isVisible()){
           panel2[j].setVisible(false);
              panel2[7].add(event.getComponent());
              panel2[7].setVisible(true);
              event.setSource(new Object());
          }
         }
         if(j==5){
          if(!panel.getComponent(2).isVisible()){
           panel2[j].setVisible(false);
              panel2[2].add(event.getComponent());
              panel2[2].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(4).isVisible()) {
           panel2[j].setVisible(false);
              panel2[4].add(event.getComponent());
              panel2[4].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(8).isVisible()){
           panel2[j].setVisible(false);
              panel2[8].add(event.getComponent());
              panel2[8].setVisible(true);
              event.setSource(new Object());
          }
         }
         if(j==6){
          if(!panel.getComponent(3).isVisible()){
           panel2[j].setVisible(false);
              panel2[3].add(event.getComponent());
              panel2[3].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(7).isVisible()) {
           panel2[j].setVisible(false);
              panel2[7].add(event.getComponent());
              panel2[7].setVisible(true);
              event.setSource(new Object());
          }        
         }
         if(j==7){
          if(!panel.getComponent(4).isVisible()){
           panel2[j].setVisible(false);
              panel2[4].add(event.getComponent());
              panel2[4].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(6).isVisible()) {
           panel2[j].setVisible(false);
              panel2[6].add(event.getComponent());
              panel2[6].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(8).isVisible()){
           panel2[j].setVisible(false);
              panel2[8].add(event.getComponent());
              panel2[8].setVisible(true);
              event.setSource(new Object());
          }
         }
         if(j==8){
          if(!panel.getComponent(5).isVisible()){
           panel2[j].setVisible(false);
              panel2[5].add(event.getComponent());
              panel2[5].setVisible(true);
              event.setSource(new Object());
          }
          else if(!panel.getComponent(7).isVisible()) {
           panel2[j].setVisible(false);
              panel2[7].add(event.getComponent());
              panel2[7].setVisible(true);
              event.setSource(new Object());
          }
         }
              } 
       }  
   }  
                 
    public void mouseMoved(MouseEvent event){
   
   }
  }    
                  
 private JPanel panel;
 private JPanel[] panel2=new JPanel[9];
}

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值