Lloré cuando pregunté por qué el programa está tan dividido
Jaja, pero aún así tienes suerte.
Se ha agregado el código Lianliankan (algoritmo básico) Parcialmente comentarios
importar java.awt.*;
importar java.awt.event.*;
la clase pública lianliankan implementa ActionListener
{
static String s="no"; //Se utiliza para registrar la información de hacer clic en el botón
int x0=0,y0=0,x=0,y=0 , n1=0,n2=0; //Se utiliza para registrar la información de posición del botón
Marco f,f1
Botón b1,b2,b3,b4,b5; b6,b7 ,b8,b9,b10; //Añadido de forma estúpida
Botón b11,b12,b13,b14,b15,b16,b17,b18; //30 botones para implementar la interfaz del juego.
Botón b19,b20,b21,b22,b23,b24,b25; //Se puede implementar con un array, este soy yo
Botón b26,b27,b28,b29 ,b30,bc ; //Al aprender Java, es el primer paso, así que
Button b,ba,br,bt1,bt2; //¡Algunas cosas son muy amateur! ! Heehee
Panel p1,p2,p3;
TextField t; // Se utiliza para mostrar información aleatoria, el método es guli() a continuación
Etiqueta. l;
int d[][]={ //Se utiliza para establecer una relación de mapeo con los botones en la interfaz
{0,0,0,0,0,0 ,0 },
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0}, p>
{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)
{ p>
lianliankan t=new lianliankan();
t.suiji()
t.go();
}
public void actionPerformed(ActionEvent e) //Otro evento de respuesta de botón.
{
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(); falso);
f1.setVisible(falso);
s="no"
go(); /p>
public void go()//Interfaz de inicialización
{
l=new Label("Estimado jugador,
f); =nuevo Marco("Lianliankan");
t=nuevo TextField();
p2=nuevo Panel();
p1=nuevo Panel ()
p3=nuevo Panel();
bc=nuevo Botón("Salir");
br=nuevo Botón("Relistar" ); /p>
b=nuevo Botón();
b1=nuevo Botón(String.valueOf(d[1][1])); (String.valueOf(d[1][2]));
b3=nuevo botón(String.valueOf(d[1][3])); nuevo Botón(String.valueOf(d[1][4]));
b5=nuevo Botón(String.valueOf(d[1][5])); b6=nuevo Botón(String.valueOf(d[2][1]));
b7=nuevo Botón(String.valueOf(d[2][2]));
p >b8=nuevo Botón(String.valueOf(d[2][3]));
b9=nuevo Botón(String.valueOf(d[2][4])); /p>
b10=nuevo Botón(String.valueOf(d[2][5]));
b11=nuevo Botón(String.valueOf(d[3][1]) )
b12=nuevo Botón(String.valueOf(d[3][2]));
b13=nuevo Botón(String.valueOf(d[3][3 ] ));
b14=nuevo Botón(String.valueOf(d[3][4]));
b15=nuevo Botón(String.valueOf(d[3] [ 5]));
b16=nuevo Botón(String.valueOf(d[4][1]));
b17=nuevo Botón(String.valueOf(d[ 4). ][2]));
b18=nuevo Botón(String.valueOf(d[4][3]));
b19=nuevo Bu.
tton(String.valueOf(d[4][4]));
b20=nuevo botón(String.valueOf(d[4][5])); =nuevo Botón(String.valueOf(d[5][1]));
b22=nuevo Botón(String.valueOf(d[5][2])); >b23=nuevo Botón(String.valueOf(d[5][3]));
b24=nuevo Botón(String.valueOf(d[5][4]));
b25=nuevo Botón(String.valueOf(d[5][5]));
b26=nuevo Botón(String.valueOf(d[6][1])); p> p>
b27=nuevo Botón(String.valueOf(d[6][2]));
b28=nuevo Botón(String.valueOf(d[6][3])
b29=nuevo Botón(String.valueOf(d[6][4]));
b30=nuevo Botón(String.valueOf(d[6][5); ]) );
p3.setLayout(null);
p1.setSize(250,300);
p2.setSize(100,40); p>
p3.setSize(300,30);
t.setSize(60,30);
l.setSize(70,30);
p1.setLayout(new GridLayout(6,5));
p1.setBackground(Color.pink
p1.setLocation(100,100);
p2.setLocation(0,400);
p3.setLocation(50,50);
t.setLocation(230,2); .setLocation (150,2);
bc.setLocation(0,40
br.setLocation(0,100);
f.add(p1);
f.add(p2);
f.add(p3); >p3 .add(t);
p2.add(bc);
p2.add(br);
p1.add(b1);
p2.add(b1); p>
p1.add(b2);
p1.add(b3); (b4);
p1.add (b5);
p1.add(b6);
p1.add(b7);
p1.add(b8);
p1.add(b9);
p1.add(b10);
p1.add(b11);
p1.add(b12
p1.add(b13
p1.add(b14); >p1.add(b15);
p1.add(b16);
p1.add(b17);
p1.add(b18);
p1.add(b
19);
p1.add(b20);
p1.add(b21); p>p1.add(b23);
p1.add(b24);
p1.add(b25);
p1.add(b26);
p1.add(b27);
p1.add(b28);
p1.add(b29); p1.add(b30);
f.pack();
f.setBounds(280,100,500,450);
f.setResizable(falso); p>
f.setBounds(280,100,500,450); p>
f.setVisible(true);
bc.addMouseListener(new MouseAdapter(){
public void mouseClicked (MouseEvent e)
{
ex();
}
}); addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
chonglie();
} p>
});
b1.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
wei(1,1,b1);
}
});
b2.addMouseListener(nuevo MouseAdapter(){
public void mouseClicked(MouseEvent e)
p>
{
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
}
}); p>b7.addMouseListener(nuevo ratón
Adaptador(){
public void mouseClicked(MouseEvent e)
{
wei(2,2,b7
}
});
b8.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{ p>
p>
wei(2,3,b8);
}
};
b9.addMouseListener(nuevo MouseAdapter) (){
p>
public void mouseClicked(MouseEvent e)
{
wei(2,4,b9
);}
});
b10.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
wei (2,5,b10);
}
});
b11.addMouseListener(nuevo MouseAdapter( ){
public void mouseClicked(MouseEvent e)
{
wei(3,1,b11
}
p>});
wei(3,1,b11);
});
p>
b12.addMouseListener( nuevo 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(nuevo MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
wei(3,4,b14);
}
<; p>});b15.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
wei(3,5,b15);
}
});
b16.addMouseListener(nuevo MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
wei(4,1,b16
}
p>
});
b17.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
wei(4,2,b17);
}
});
b18.addMouseListener(nuevo 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(nuevo 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); p> p>
}
});
b24.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) p>
{
wei(5,4,b24);
}
}); (nuevo MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
wei(5,5,b25);
}
});
b26.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
p>
wei(6,1,b26);
}
});
b27.addMouseListener( nuevo MouseAdapter(){
p>
public void mouseClicked(MouseEvent e)
{
wei(6,2,b27 ); p>
}
});
b28.addMous
eListener(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(nuevo MouseAdapter()). {
public void mouseClicked(MouseEvent e)
{
wei(6,5,b30
}
});
}
public void ex() //Para salir de la interfaz, se puede usar diolog para implementar tipos modelados, que son más consistentes
{
f1=new Frame("Asignación de juego");
f1.setLayout(new GridLayout(1,1)); bt1=nuevo botón ("Confirmar para salir");
bt2=nuevo botón("Un juego más");
f1.add(bt1); p>f1.add (bt2);
f1.pack();
f1.setBounds(400,250,90,60);
f1.setResizable; (falso);
f1.show();
f1.setVisible(verdadero);
bt1.addMouseListener(nuevo MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
System.exit(0);
}
})
bt2.addActionListener(this);
}
public void suiji() //Genera números aleatorios para llenar cada posición de la matriz correspondiente al interfaz del juego
{
int m,n,k=0,k1,k2,k3
for(m=1;m<=15; m++)
{
k1=(int)(Math.random()*25+1); 2;n++) p>
{
k2=(int)(Math.random()*6+1); .random()*5 +1);
mientras(d[k2][k3]!=0 && k!=30)
{
k2=(int)(Math.random()*6+1);
k3=(int)(Math.random()*5+1); /p>
this.d[k2][k3]=k1
k++
}
}
}
public void guli() //Información aleatoria
{
>
int l=0;
t.setText("");
l=(int)(Math.random()*10);
System.out.println(l);
interruptor(l)
{
caso 1:
t. setText("¡Está bien! ¡Vamos!");
break;
caso 3:
t.setText("¡Eres increíble!"); /p>
p>
romper;
caso 5:
t.setText("¡Acelerar!"); romper;
caso 6:
t.setText("¡No está mal!");
caso 8; /p>
t. setText("¡Vamos!");
break;
caso 9:
t.setText("Bastante inteligente !");
romper;
predeterminado:
romper;
}
}
public void chonglie() //Reorganizar el método
{
int save[],i,j,n=0,k2,k3,k
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}
};
guardar=nuevo int[30];
for(n=0;n<30;n++)
guardar[n]= 0; //Definir una matriz para guardar la información actual en cada posición del botón
n=0
for(i=0;i<=6;i++)
for (j=0;j<=5;j++)
{
if(this.d[i][j]!=0)
{
guardar[n]=this.d[i][j]
n++
}
}
n=n-1;
this.d=d;
while(n>=0) // Genera una posición y lugar aleatorios. el botón
{
k2=(int)(Math.random()*6+1);
k3=(int)(Math.random); ()*5+1) ;
mientras(d[k2][k3]!=0)
{
k2=(int)(Matemáticas .random()*6+ 1);
k3=(int)(Math.random()*5+1);
}
este); .d[k2][k3 ]=guardar[n];
n--;
}
f.setVisible(false); >
s=" no"; //La información del clic en el botón debe clasificarse como inicial aquí
go()
ling(); >}
pub
lic void ling() //Elimina el botón correspondiente al miembro cero del array
{ //Será mucho más sencillo implementar un array de tipo botón,
if( d[ 1][1]==0)
b1.setVisible(false);
if(d[1][2]==0)
b2.setVisible(falso);
if(d[1][3]==0)
b3.setVisible(falso); if( d[1][4]==0)
b4.setVisible(false
if(d[1][5]==0)
b5.setVisible(false);
if(d[2][1]==0)
b6.setVisible(false); p> 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); /p >
if(d[3][3]==0)
b13.setVisible(false);
if(d[3][4]= =0 )
b14.setVisible(falso);
if(d[3][5]==0)
b15.setVisible(falso)
if(d[4][1]==0)
b16.setVisible(false); ]= =0)
b17.setVisible(false);
if(d[4][3]==0)
b18.setVisible( falso)
if(d[4][4]==0)
b19.setVisible(falso);
if(d[4] [5 ]==0)
b20.setVisible(false);
if(d[5][1]==0)
b21. setVisible(falso);
if(d[5][2]==0)
b22.setVisible(falso);
if(d[ 5] [3]==0)
b23.setVisible(false
if(d[5][4]==0)
b24.setVisible(falso);
if(d[5][5]==0)
b25.setVisible(falso); d[ 6][1]==0)
b26.setVisible(false);
if(d[6][2]==0)
b27.setVisible(false);
if(d[6][3]==0)
b28.setVisibl
e(falso);
if(d[6][4]==0)
b29.setVisible(falso);
if(d[ 6][5]==0)
b30.setVisible(false);
}
public void wei(int w1,int w2,Botón bz ) //Juzga y registra la información de cada clic en el botón
{ //Solo se puede eliminar cuando los dos botones son iguales
if((s.trim()). es igual(" no"))
{
s=b1.getLabel()
x0=w1
y0=; w2;
n1=d[x0][y0];
b=bz
x=w1; w2;
n2=d[x][y];
ba=bz
}
más
{
x0=x
y0=y
n1=d[x0][y0]; b=ba ;
x=w1
y=w2
n2=d[x][y]; ba=bz ;
if(n1==n2 && ba!=b)
{
xiao();
}
}
public void xiao() //Esta es la parte más importante de todo el juego, que es determinar la información entre los dos. botones
{ //¿Se puede eliminar en la misma situación?
Analiza detenidamente sin comentar uno por uno
int i=0, j=0,n=0,k=0
if((x0==x &&(y0==; y+1||y0==y-1)) || ((x0==x+1||x0==x-1)&&(y0==y))) //Situaciones adyacentes
{
ba.setVisible(falso);
b.setVisible(falso);
guli(); ="no";
d[x0][y0]=0
d[x][y]=0
}
else
{
for (j=0;j<7;j++ ) //Analiza los dos botones fila por fila para ver si se pueden eliminar p >
{
si (d[x0][j]==0)
{
si (y>j)
{
para (i=y-1;i>=j;i-- )
{
si (d[x] [ i]!=0)
{
k=0
romper
}
más
{
k=1
}
}
si (k==1)
{
si (y0>j)
{
para (i=y0-1;i>=j ;i - - )
{
if (d[x0][i]!=0)
{
k=0;
romper;
}
si no
{
k=2
}
}
}
si (y0 { para (i= y0 +1;i<=j ;i++) { if (d[x0][i]!=0) { k=0; romper } si no { k= 2 ; } } } } } si ( y { para (i=y+1;i<=j ;i++ ) { if (d[x][i]!=0) { k=0 romper; /p> p> else { k=1 } } si (k==1) { si (y0>j) { para (i =y0-1;i >=j ;i-- ) { if (d[x0][i]!=0) { k=0; romper; } si no { k=2; } } } si (y0 { para (i=y1;i<=j ;i++) { if (d[x0][i]!=0) { k=0; romper } else { k=2 } } } } si (y==j ) { si (y0>j) { para (i=y0-1;i>=j ;i-- ) { if (d[x0][i]!=0) { k=0; } else { k=2 } ; } } if (y0 { for (i=y1;i<=j; i++) { if (d[x0][i]!=0) { k=0; /p> romper; } si no { k=2; } } } } } si (k==2) { if (x0==x) { b.setVisible(false); ba.setVisible(false); p> p> guli(); s="no"; k=0; y0]=0; d[x][y]=0 } si (x0 { para (n=x0;n<=x-1;n++ ) { si (d[n][j]!=0 ) { k=0 romper } if(d[n] [j]== 0 && n==x-1) { b.setVisible(false); ba.setVisible(false); guli(); s="no"; k=0 d[x0][y0]= 0; d[x][y]=0 } } } if (x0>x ) { for (n=x0;n>=x+1 ;n-- ) { if ( d[n][j]!=0) { k=0 romper; >} if(d[n][j]==0 && n==x+1) { b.setVisible(false) ; ba.setVisible(false); guli(); s="no"; d[x0][y0]=0 d[x][y]=0 } } } } < /p> } for (i=0;i<8;i++) //Analizar por columna para ver si se puede eliminar { si (d[i][y0]==0) { si (x>i) { para (j=x-1;j>=i ;j-- ) { if (d[j][y]!=0) { k=0 romper; } else { k=1; } } si (k==1) { p> si (x0>i) { para (j=x0-1;j>=i ;j-- ) { if (d[j][y0]!=0) { k=0 romper; /p > } else { k=2 } } p> } si (x0 { para (j=x1;j<=i;j++ ) { if (d[j][y0]!=0) { k=0; p> romper; } si no { k=2; p> } } } } si (x { para (j=x+1;j<=i;j++ ) { si (d[j ][y]!=0 ) { k=0 romper } si no { k=1; } } si (k==1) ) { si (x0>i) { para (j=x0-1;j>=i ; j-- ) { if (d[j][y0]!=0) { k=0 romper; } si no { k=2; p>} } } si (x0 { para (j =x1;j< =i ;j++ ) { if (d[j][y0]!=0) { p> k= 0; romper; } si no { k =2; } } } } } si (x==i) { si (x0>i) { para (j=x0-1 ;j>=i ;j -- ) { if (d[j][y0]!=0) { k=0; p> romper; } si no { k=2; } } si (x0 { para (j=x 1 ;j<=i ;j++ ) { if (d[j][y0]!=0) { k=0; romper; } si no { k=2; /p> } } } } } si (k = =2) { if (y0==y) { b.setVisible(false ba.setVisible(false); guli(); s="no"; p > d[x0][y0]=0 d[x][y]=0 } si (y0; < y) { para (n=y0;n<=y-1;n++) { si ( d [i][n]!=0) { k=0 romper } if(d[i][n]==0 && n==y-1) { b.setVisible(false ba.setVisible(falso); guli(); s="no"; p >d[x0][y0]=0 d[x][y]=0 } } } si (y0>y) { para (n=y0;n>=y+1 ;n--) p > { if (d[i][n]!=0) { k=0; p >romper; } if(d[i][n]==0 && n==y+1) { b.setVisible(falso); ba.setVisible(falso); guli(); /p> p> k=0; d[x0][y0]=0 d[x][y]=0; /p> } } } } } } } }