Código fuente del sitio web de clasificación de juegos
Importar Java .
Importar javax.swing.*;
La clase mainframe extiende jframe para implementar el detector de acciones {//Define todo el marco.
JButton privado[]JB = nuevo JButton[8];
JButton privado jbs = nuevo JButton(" apertura ");
JButton privado jbres = nuevo JButton("Reiniciar");
JPanel privado jp 1 = nuevo JPanel();
JPanel privado jp2 = nuevo JPanel();
privado int [ ]n = nuevo int[9];
int privado[]n 1 = nuevo int[9];
posición int privado = 8, p, q;
Bl booleano privado, startbl = false
JLabel JL privado = nuevo JLabel();
cuenta int privada = 0;
JLabel JL privado 1 = new JLabel(" integer . tostring(0));
Public host(){ // método de construcción del marco
int I;
for (int j = 0; j ltn .longitud; j){
n[j]= j;
n 1[j]= n[j];
}
for(I = 0; I ltjb.lengthI ){ //Asigne un valor correspondiente a cada botón y grabe al oyente
JB[. entero . tostring(I 1));
Jb[i]. setFont("número", fuente. negrita, 48));
jp2 . );
jb[i].
addActionListener(this);
}
for(I = 0; iltn. length; i){
if(n[i] == posición )
jp2 . agregar(JL);
Otros
jp2 .
jp2.setLayout(new GridLayout(3, 3)); //Registra el oyente
jbs. addactionlistener(this);
jbres. this);
jp 1. add(jbs);
jp 1. add(jbres);
jp 1. add(JL 1) ;
jp 1. set layout(new FlowLayout()); //Establece jp1 como diseño de flujo.
set layout(new BorderLayout()); //El diseño general es el diseño del borde.
this.add("Norte ", jp 1);
this.add("Centro ", jp2); ”);
this.setBounds(100, 100, 300, 350);
this . setdefaultcloseoperative(JFrame. EXIT _ ON _ CLOSE); / p>
this . setresizable(false);
this . set visible(true);
}
acción nula pública realizada (evento de acción). e ){//Implementar eventos del botón.
If(e.getSource()==jbres){ //Evento del botón de reinicio.
for(int j = 0; j ltn .length; j )
n[j]= n 1[j];
reShow();
startbl = true
count = 0;
JL 1 . settext(" integer . tostring(0));
}
Else if(e.getSource()==jbs) //Evento del botón de inicio
This. init();
else if(startbl){ //Evento de movimiento del botón 1-8
for(int I = 0; i ltjb.lengthi)
if(e.getSource() == jb[i]){
//sistema . out . println(I 1);
for(int a = 0; a ltn .length; a ){
if(n [a]==i)
p = a;
si(n[a]= =posición)
q = a;
}
}
si (p!= 0 amp ampp!= 1.
amplificador! = 2)
Si ((p-3) == q)
Intercambiar (p, q);
Si (p! = 0 amp ampp ! = 3 amperios ampp! = 6)
Si ((p-1) == q)
Intercambiar (p, q);
si ( p!= 2 amperios ampp!= 5 amperios ampp!= 8)
if ((p 1) == q)
intercambio (p, q);
Si (p!= 6 amperios ampp!= 7 amperios ampp!= 8)
Si ((p 3) == q)
Intercambiar ( p, q) ;
}
}
Intercambio de vacío público (int x, int y) {//El botón 1-8 se intercambia con una imagen en blanco.
int z;
z = n[x];
n[x]= n[y]; y]= z;
JL 1. settext(" entero . tostring(count));
reShow();
win(); p>
win();
p>
}
Public void Init(){ //Generar aleatoriamente la interfaz del juego
int i=0, j, x;
Booleano bl;
mientras(ilt9){
bl =true;
x =(int)(matemáticas. aleatorio()* 9);
p>
for(j = 0;j lti;j)
if(n[j] == x)
bl = false;
Si (bl){
n[i ]= x;
n 1 [I-1]= x;
}
}
reShow();
startbl = true
count = 0;
JL 1. settext(" integer . tostring(0));
}
public void show(){// Reescribe la interfaz del juego.
for(int I = 0; i ltn . length; i ) {
if (n[i] == posición)
jp2 . JL);
Otros
jp2 . add(JB[n[I]]);
}
revitate(. );
}
Public void win(){ //Determine si fue exitoso.
winbl booleano = true
for(int I = 0; iltn. length; i)
if(n[i]!=i) p>
winbl = false
if(winbl){
Panel de opciones. Muestra un cuadro de diálogo de mensaje (este, "¡Felicitaciones, lo logró!" "Usó "Integer.toString(count) "paso", "", jooptionpane.
information_message);
startbl = false
}
}
}
Mosaico de clase pública {// Clase de función principal
Public static void main(String[] args){
Nuevo mainframe();
}
}
Lo inventé antes. No muy bueno. Por favor consúltelo.