⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lianliankan.java

📁 Java课程设计
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*; 
import java.awt.event.*; 
public class lianliankan implements ActionListener 
{ 
  static String s="no"; //用来纪录点击按钮的信息 
  int x0=0,y0=0,x=0,y=0,n1=0,n2=0; //用来纪录按钮的位置信息 
  Frame f,f1; 
  Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10; //添加30个按钮 
  Button b11,b12,b13,b14,b15,b16,b17,b18; // 来实现游戏界面
  Button b19,b20,b21,b22,b23,b24,b25; //可以用数组实现 
  Button b26,b27,b28,b29,b30,bc;  
  Button p1,p2,br,bt1,bt2;    //p1、p2为选定的按钮
  Panel panel1,panel2; 

  int d[][]={ //用来和界面的按钮建立映射关系 
  {0,0,0,0,0,0,0}, 
  {0,0,0,0,0,0,0}, 
  {0,0,0,0,0,0,0}, 
  {0,0,0,0,0,0,0}, 
  {0,0,0,0,0,0,0}, 
  {0,0,0,0,0,0,0}, 
  {0,0,0,0,0,0,0}, 
  {0,0,0,0,0,0,0} 
  }; 

  public static void main(String[] args) 
  { 
    lianliankan t=new lianliankan(); 
    t.suiji(); 
    t.go(); 
  } 

  public void actionPerformed(ActionEvent e) //再来一次按钮的响应事件。 
  { 
    int d[][]={ 
    {0,0,0,0,0,0,0}, 
    {0,0,0,0,0,0,0}, 
    {0,0,0,0,0,0,0}, 
    {0,0,0,0,0,0,0}, 
    {0,0,0,0,0,0,0}, 
    {0,0,0,0,0,0,0}, 
    {0,0,0,0,0,0,0}, 
    {0,0,0,0,0,0,0} 
    }; 
    this.d=d; 
    suiji();  //调用随机函数,产生随机数;
    f.setVisible(false); 
    f1.setVisible(false); 
    s="no"; 
    go(); 

  } 

/////////////////////////////////////初始化界面 
  public void go() 
  { 
   f=new Frame("连连看!FOX"); 
   panel2=new Panel(); 
   panel1=new Panel(); 
   bc=new Button(" EXIT"); 
   br=new Button("RESET"); 
   p1=new Button(); 
   b1=new Button(String.valueOf(d[1][1])); 
   b2=new Button(String.valueOf(d[1][2])); 
   b3=new Button(String.valueOf(d[1][3])); 
   b4=new Button(String.valueOf(d[1][4])); 
   b5=new Button(String.valueOf(d[1][5])); 
   b6=new Button(String.valueOf(d[2][1])); 
   b7=new Button(String.valueOf(d[2][2])); 
   b8=new Button(String.valueOf(d[2][3])); 
   b9=new Button(String.valueOf(d[2][4])); 
   b10=new Button(String.valueOf(d[2][5])); 
   b11=new Button(String.valueOf(d[3][1])); 
   b12=new Button(String.valueOf(d[3][2])); 
   b13=new Button(String.valueOf(d[3][3])); 
   b14=new Button(String.valueOf(d[3][4])); 
   b15=new Button(String.valueOf(d[3][5])); 
   b16=new Button(String.valueOf(d[4][1])); 
   b17=new Button(String.valueOf(d[4][2])); 
   b18=new Button(String.valueOf(d[4][3])); 
   b19=new Button(String.valueOf(d[4][4])); 
   b20=new Button(String.valueOf(d[4][5])); 
   b21=new Button(String.valueOf(d[5][1])); 
   b22=new Button(String.valueOf(d[5][2])); 
   b23=new Button(String.valueOf(d[5][3])); 
   b24=new Button(String.valueOf(d[5][4])); 
   b25=new Button(String.valueOf(d[5][5])); 
   b26=new Button(String.valueOf(d[6][1])); 
   b27=new Button(String.valueOf(d[6][2])); 
   b28=new Button(String.valueOf(d[6][3])); 
   b29=new Button(String.valueOf(d[6][4])); 
   b30=new Button(String.valueOf(d[6][5])); 
   panel1.setSize(500,600);
   panel2.setSize(100,40); 
   panel1.setLayout(new GridLayout(6,5));  //panel1上面放置6行5列按钮
   panel1.setBackground(Color.black); 
   panel1.setLocation(50,100); 
   panel2.setLocation(0,200); 
   bc.setLocation(0,40); 
   br.setLocation(0,100); 
   panel1.setFont(new Font("宋体",64,35));
   panel2.setFont(new Font("宋体",44,30));
   f.add(panel1);    f.add(panel2); 
   panel2.add(bc);   panel2.add(br); 
   panel1.add(b1);    panel1.add(b2);    panel1.add(b3); 
   panel1.add(b4);    panel1.add(b5);    panel1.add(b6); 
   panel1.add(b7);    panel1.add(b8);    panel1.add(b9); 
   panel1.add(b10);    panel1.add(b11);    panel1.add(b12); 
   panel1.add(b13);    panel1.add(b14);    panel1.add(b15); 
   panel1.add(b16);    panel1.add(b17);    panel1.add(b18); 
   panel1.add(b19);    panel1.add(b20);    panel1.add(b21); 
   panel1.add(b22);    panel1.add(b23);    panel1.add(b24); 
   panel1.add(b25);    panel1.add(b26);    panel1.add(b27); 
   panel1.add(b28);    panel1.add(b29);    panel1.add(b30); 
   f.pack(); 
   f.setBounds(25,10,600,750); 
   f.setResizable(false); 
   f.setVisible(true); 
   
   bc.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { ex(); } 
   }); 
   br.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { chonglie(); } 
   }); 
   b1.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e){ wei(1,1,b1); } 
   }); 
   b2.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(1,2,b2); } 
   }); 
   b3.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(1,3,b3); } 
   }); 
   b4.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(1,4,b4); } 
   }); 
   b5.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(1,5,b5); } 
   }); 
   b6.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e){ wei(2,1,b6); } 
   }); 
   b7.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(2,2,b7); } 
   }); 
   b8.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(2,3,b8); } 
   }); 
   b9.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(2,4,b9); } 
   }); 
   b10.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e){ wei(2,5,b10); } 
   }); 
   b11.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(3,1,b11); } 
   }); 
   b12.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(3,2,b12); } 
   }); 
   b13.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(3,3,b13); } 
   }); 
   b14.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(3,4,b14); } 
   }); 
   b15.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(3,5,b15); } 
   }); 
   b16.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(4,1,b16); } 
   }); 
   b17.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(4,2,b17); } 
   }); 
   b18.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(4,3,b18); } 
   }); 
   b19.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(4,4,b19); } 
   });
   b20.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(4,5,b20); } 
   }); 
   b21.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e){ wei(5,1,b21); } 
   }); 
   b22.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(5,2,b22); } 
   }); 
   b23.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(5,3,b23); } 
   }); 
   b24.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e){ wei(5,4,b24); } 
   }); 
   b25.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(5,5,b25); } 
   });
   b26.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(6,1,b26); } 
   }); 
   b27.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(6,2,b27); } 
   }); 
   b28.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(6,3,b28); } 
   }); 
   b29.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(6,4,b29); } 
   }); 
   b30.addMouseListener(new MouseAdapter(){ 
     public void mouseClicked(MouseEvent e) { wei(6,5,b30); } 
   }); 
 } 

  ////////////////////////退出游戏界面 
 public void ex()  
 { 
  f1=new Frame("EXIT THIS GAME!"); 
  f1.setLayout(new GridLayout(1,1)); 
  bt1=new Button("EXIT!"); 
  bt2=new Button("AGAIN!"); 
  f1.setFont(new Font("宋体",64,35));
  f1.add(bt1); 
  f1.add(bt2); 
  f1.pack(); 
  f1.setBounds(200,250,300,100); 
  f1.setResizable(false); 
  f1.show(); 
  f1.setVisible(true); 
  bt1.addMouseListener(new MouseAdapter(){ 
  public void mouseClicked(MouseEvent e) 
    { System.exit(0); } 
    }); 
  bt2.addActionListener(this); 
 } 

  /////////////////////////产生随机数,来填充游戏界面对应的数组的各个位置
 public void suiji()  
 { 
  int m,n,k=0,k1,k2,k3; 
  for(m=1;m<=15;m++) 
  { 
   k1=(int)(Math.random()*25+1); 
   for(n=1;n<=2;n++) 
   { 
    k2=(int)(Math.random()*6+1); 
    k3=(int)(Math.random()*5+1); 
    while(d[k2][k3]!=0 && k!=30) 
     { 
      k2=(int)(Math.random()*6+1); 
      k3=(int)(Math.random()*5+1); 
     } 
    this.d[k2][k3]=k1; 
    k++; 
   } 
  } 
 } 


 /////////////////////// 当无图形可消去时,需重新排列图形 
 public void chonglie()  
 { 
  int save[],i,j,n=0,k2,k3,k; 
  int d[][]={                 //一定要注意d数组与按纽是映射关系
      {0,0,0,0,0,0,0}, 
      {0,0,0,0,0,0,0}, 
      {0,0,0,0,0,0,0}, 
      {0,0,0,0,0,0,0}, 
      {0,0,0,0,0,0,0}, 
      {0,0,0,0,0,0,0}, 
      {0,0,0,0,0,0,0}, 
      {0,0,0,0,0,0,0} 
    }; 
 save=new int[30]; 
 for(n=0;n<30;n++) 
   save[n]=0;                //定义一个数组来保存当前的每个按钮位置上的信息 
 n=0; 
 for(i=0;i<=6;i++) 
   for(j=0;j<=5;j++) 
   { 
     if(this.d[i][j]!=0) 
       { 
        save[n]=this.d[i][j]; 
        n++; 
       } 
   } 
   n=n-1; 
   this.d=d; 
   while(n>=0)               //产生随机位置,放置按钮 
   { 
    k2=(int)(Math.random()*6+1); 
    k3=(int)(Math.random()*5+1); 
    while(d[k2][k3]!=0)      //这个判断是排除产生两个相同的随机值
    { 
     k2=(int)(Math.random()*6+1); 
     k3=(int)(Math.random()*5+1); 
    } 
    this.d[k2][k3]=save[n]; 
    n--; 
   } 
   f.setVisible(false); 
   s="no";                  //这里一定要将按钮点击信息归为初始 
   go();                    //调用初始界面
   ling();                  //将值为零的按钮消去(设为不可见)
 } 

 ////////////////////////将数组中为零的成员所对应的按钮消去(设为不可见)
 public void ling() 
 {                     //用按钮类型的数组实现会简化得多, 
 if(d[1][1]==0) 
   b1.setVisible(false); 
 if(d[1][2]==0) 
   b2.setVisible(false); 
 if(d[1][3]==0) 
   b3.setVisible(false); 
 if(d[1][4]==0) 
   b4.setVisible(false); 
 if(d[1][5]==0) 
   b5.setVisible(false); 
 if(d[2][1]==0) 
   b6.setVisible(false); 
 if(d[2][2]==0) 
   b7.setVisible(false); 
 if(d[2][3]==0) 
   b8.setVisible(false); 
 if(d[2][4]==0) 
   b9.setVisible(false); 
 if(d[2][5]==0) 
   b10.setVisible(false); 
 if(d[3][1]==0) 
   b11.setVisible(false); 
 if(d[3][2]==0) 
   b12.setVisible(false); 
 if(d[3][3]==0) 
   b13.setVisible(false); 
 if(d[3][4]==0) 
   b14.setVisible(false); 
 if(d[3][5]==0) 
   b15.setVisible(false); 
 if(d[4][1]==0) 
   b16.setVisible(false); 
 if(d[4][2]==0) 
   b17.setVisible(false); 
 if(d[4][3]==0) 
   b18.setVisible(false); 
 if(d[4][4]==0) 
   b19.setVisible(false); 
 if(d[4][5]==0) 
   b20.setVisible(false); 
 if(d[5][1]==0) 
   b21.setVisible(false); 
 if(d[5][2]==0) 
   b22.setVisible(false); 
 if(d[5][3]==0) 
   b23.setVisible(false); 
 if(d[5][4]==0) 
   b24.setVisible(false); 
 if(d[5][5]==0) 
   b25.setVisible(false); 
 if(d[6][1]==0) 
   b26.setVisible(false); 
 if(d[6][2]==0) 
   b27.setVisible(false); 
 if(d[6][3]==0) 
   b28.setVisible(false); 
 if(d[6][4]==0) 
   b29.setVisible(false); 
 if(d[6][5]==0) 
   b30.setVisible(false); 
 } 

  //////////////判断并纪录每次点击按钮的信息,//////////////////////////
  //////////////p1、p2为点击了的按钮,d[x0][y0]和d[x][y]为对应的值。////
  //////////////当两次的按钮的值相同时才能消去。 ///////////////////////
  
 public void wei(int w1,int w2,Button bz) // 
 { 
  if((s.trim()).equals("no")) 
   { 
    s=b1.getLabel(); 
    x0=w1; 
    y0=w2; 
    n1=d[x0][y0]; 
    p1=bz; 
    x=w1; 
    y=w2; 
    n2=d[x][y]; 
    p2=bz; 
   } 
  else 
   { 
    x0=x; 
    y0=y; 
    n1=d[x0][y0]; 
    p1=p2; 
    x=w1; 
    y=w2; 
    n2=d[x][y]; 
    p2=bz; 
    if(n1==n2 && p2!=p1) 
      { 
        xiao(); //调用消去符合条件的两个相同按钮
      } 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -