Sitio web de resúmenes de películas - E-sports - ¡1200 puntos, rogando por el código fuente del juego de rompecabezas digital JAVA!

¡1200 puntos, rogando por el código fuente del juego de rompecabezas digital JAVA!

1:

importar java.io.IOException;

importar javax.sound.sampled.LineUnavailableException;

importar javax.sound .sampled.UnsupportedAudioFileException;

// Juego de rompecabezas basado en el principio del taoísmo Huarong. Aproveche las aplicaciones de componentes ligeros.

importar java.awt.BorderLayout;

importar java.awt.Button;

importar java.awt.Choice;

importar java.awt.Color;

importar java.awt.Container;

importar java.awt.event.ActionEvent;

importar java.awt.event. ActionListener;

importar javax.swing.Icon;

importar javax.swing.ImageIcon;

importar javax.swing.JFrame;

importar javax.swing.JLabel;

importar javax.swing.JOptionPane;

importar javax.swing.JPanel;

la clase pública MyMainFrame extiende JFrame implementa ActionListener {

/**

*

*/

privado estático final largo serialVersionUID = 1L;

MyCanvas myCanvas;

JPanel panelNorth,panelPreview;

Botón de inicio, vista previa, establecer

Contenedor contenedor

public MyMainFrame(); {//Inicialización

contenedor=this.getContentPane();

start=new Button("Inicio");

start.addActionListener(this);

vista previa=nuevo Botón("Vista previa");

vista previa.addActionListener(this);

conjunto = nuevo Botón("Establecer"); p>

set.addActionListener(this);

panelPreview=new JPanel();

panelPreview.setLayout(null);

Icono icono= new ImageIcon ("images/pic_"+MyCanvas.pictureID+".jpg");

JLabel label=new JLabel(icon

label.setBounds(0,0,400,400);

panelPreview.add(label);

panelNorth=new JPanel();

panelNorth.setBackground(Color.amarillo);

panelNorth.add(inicio);

panelNorth.add(vista previa);

panelNorth.add(conjunto)

;

myCanvas=new MyCanvas();

contenedor.add(myCanvas,BorderLayout.CENTER);

contenedor.add(panelNorth,BorderLayout.NORTH) ;

this.setTitle("Juego de rompecabezas de moldeo-1212");

this.setLocation(300,200);

this.setSize(408,465); /p>

this.setResizable(false);

this.setVisible(true);

this.setDefaultCloseOperation(3);

} / /fin del constructor de inicialización

public void actionPerformed(ActionEvent e) {

Botón botón=(Botón)e.getSource();

if( botón= =inicio){

myCanvas.Start();

}else if(button==vista previa){

if(button.getLabel() == "Vista previa"){

contenedor.remove(myCanvas);

contenedor.add(panelPreview

panelPreview.updateUI();

p>

contenedor.repaint();

botón.setLabel("Return");

}else{

contenedor.remove (panelPreview) ;

contenedor.add(myCanvas);

contenedor.repaint();

button.setLabel("Vista previa");

}

}else if(button==set){

Elección pic = nueva Elección();

//pic.add( "QQ" );

pic.add("Belleza");

int i=JOptionPane.showConfirmDialog(this,pic,"Select Picture", JOptionPane.OK_CANCEL_OPTION);

//Utilice el cuadro de diálogo de selección para seleccionar imágenes.

if(i==JOptionPane.YES_OPTION){

MyCanvas.pictureID=pic.getSelectedIndex()+5;

myCanvas.reLoadPictrue();

Icono icono=nuevo ImageIcon("images/pic_"+MyCanvas.pictureID+".jpg");

JLabel label=nuevo JLabel(icono);

label.setBounds(0,0,400,400);

panelPreview.removeAll();

panelPreview.add(label);

panelPreview.repaint();

}

}

}

public static void main(String[] args) lanza UnsupportedAudioFileException, LineUnavailableException, IOException

{

new MyMainFrame();

} //fin de principal

}

2:

importar java.awt.Rectangle;

importar java.awt.event.MouseEvent;

importar java.awt.event.MouseListener;

importar javax.swing.Icon;

importar javax.swing.ImageIcon;

importar javax.swing.JOptionPane;

importar javax.swing.JPanel; p>

la clase pública MyCanvas extiende JPanel implementa MouseListener

{

/**

*

*/

private static final long serialVersionUID = 1L;

boolean hasAddActionListener=false;// Establece la bandera del oyente de acción del cuadrado, TRUE significa que se ha agregado el evento de acción

Celda cell[];//Definir la celda cuadrada

Rectángulo cellNull;//Definir el área cuadrada vacía como una clase rectangular

public static int pictureID=4 ;//Selección actual Código de imagen

public MyCanvas() {

this.setLayout(null);

this.setSize(400,400);

cellNull=new Rectángulo(300,300,100,100);//El área del cuadrado vacío está en la tercera fila y cada tres columnas

cell=new Cell[16];

Icono icono;

for (int i = 0; i < 4; i++) {

for(en

t j=0;j<4;j++){

icon=new ImageIcon("images/pic_"+pictureID+"_"+(i*4+j+1)+".jpg");

celda[i*4+j]=nueva celda(icono);

celda[i*4+j].setLocation(j*100,i*100);

this.add(celda[i*4+j]);

}

}

this.remove(celda[15 ]);//Elimina el último cuadrado extra

} //Coloca 9 imágenes pequeñas y transpone la última

public void reLoadPictrue(){//Cuando Al seleccionar otros gráficos para rompecabezas, necesitas recargar la nueva imagen

Icon icon;

for (int i = 0; i < 4; i++) {

for(int j=0;j<4;j++){

icon=new ImageIcon("images/pic_"+pictureID+"_"+(i*4+j+1)+".jpg ");

celda[i*4+j].setIcon(icon);

}

}

}

public boolean isFinish(){//Determinar si la unión se realizó correctamente

for(int i=0;i<15;i++)

{ int x=cell[ i ].getBounds().x;

int y=cell[i].getBounds().y;

if(y/100*4+x/100!= i )

return false;

} //fin de for

return true;

}

public void Start(){//Reorganizar la cuadrícula e interrumpir el orden

while(cell[0].getBounds().x<=100&&cell[0].getBounds().y<= 100){ //Cuando el primer cuadrado está más cerca de la esquina superior izquierda

int x=cellNull.getBounds().x;

int y=cellNull.getBounds() .y;

int direction=(int)(Math.random()*4);//Produce 0-4, correspondiente al movimiento hacia arriba, abajo, izquierda y derecha del cuadrado vacío

if( dirección==0){//El cuadrado vacío se mueve hacia la izquierda, intercambia posiciones con el cuadrado de la izquierda y el cuadrado de la izquierda se mueve hacia la derecha

x-=100;

if ( prueba(x,y)){

for(int j=0;j<15;j++){

if((cell[j].getBounds().x = =x)&&(cell[j].getBounds().y==y)){//Busca los botones de la izquierda por turno

cell[j].move("RIGHT" ,100);

cellNull.setLocation(x,y);

> break;//Saltar del bucle for después de encontrarlo

}

}

}

}else if(dirección ==1) {//DERECHA

x+=100;

if(test(x,y)){

for(int j=0; j<15; j++){

if((celda[j].getBounds().x==x)&&(celda[j].getBounds().y==y)){

celda[j].move("LEFT",100);

cellNull.setLocation(x,y);

break;

}

}

}

}si no(dirección==2){//ARRIBA

y-=100 ;

if(test(x,y)){

for(int j=0;j<15;j++){

if((celda [j]. getBounds().x==x)&&(cell[j].getBounds().y==y)){

celda[j].move("DOWN",100 );

cellNull.setLocation(x,y);

descanso;

}

}

}

}else{//DOWN

y+=100;

if(test(x,y)){

para (int j= 0;j<15;j++){

if((celda[j].getBounds().x==x)&&(celda[j].getBounds().y= =y)) {

celda[j].move("UP",100);

cellNull.setLocation(x,y);

romper ;

}

}

}

}

}

si( !hasAddActionListener)/ /Si el evento de acción aún no se ha agregado, agréguelo

for(int i=0;i<15;i++)//Agregue un evento de acción para el cuadrado número 1 para que que se puede mover haciendo clic en el botón

cell[i].addMouseListener(this);

hasAddActionListener=true;

}

prueba booleana privada(int x,int y ){

if((x>=0&&x<=200)||(y>=0&&y<=200))

devuelve verdadero;

else

devuelve falso;

}

public void mouseClicked(MouseEvent e)

{ }

public void mouseEntered(MouseEvent e) { }

public void mouseExited(MouseEvent e) { }

public void mouseReleased(MouseEvent e) { }

public void mousePressed(MouseEvent e) {

//El evento del mouse del cuadrado no se maneja en la clase Cell porque se usan algunos métodos en MyCanvas.

p >

Cell button=(Cell)e.getSource();

int x1=button.getBounds().x;//Obtener las coordenadas del cuadrado en el que se hizo clic

int y1=button.getBounds().y;

int x2=cellNull.getBounds().x;//Obtener las coordenadas del cuadrado vacío

int y2=cellNull . getBounds().y;

if(x1==x2&&y1-y2==100)//Comparar e intercambiar si se cumplen las condiciones

button.move("UP ", 100);

else if(x1==x2&&y1-y2==-100)

button.move("DOWN",100);

else if(x1-x2==100&y1==y2)

botón.move("IZQUIERDA",100);

else if(x1-x2==-100&&y1= =y2 )

button.move("RIGHT",100);

else

return;//No se realizará ningún procesamiento si no se satisface

cellNull.setLocation(x1,y1);

this.repaint();

if(this.isFinish()){//Juzga si está completo

p>

JOptionPane.showMessageDialog(this, "Jing Feng, felicidades por completar el rompecabezas, ¡vamos! ¿Quieres continuar al siguiente nivel?");

for(int i=0; i<15; i++)

cell[i].removeMouseListener(this);// Si se completa, cancele el evento del mouse y el clic del mouse en el cuadrado ya no funcionará

hasAddActionListener=false;

p>

}

}

}

3:

importar javax .swing.Icon;

importar javax.swing.JButton;

clase pública Cell extiende JButton {

/**

*

*/

privado estático final largo serialVersionUID = 1L;

Celda(Icono icono){//en realidad ICON

super( icono);

this.setSize(100,100);

}

pu

blic void move(Dirección de la cuerda,int sleep){//Movimiento de cuadrados

if(direction=="UP"){

this.setLocation(this.getBounds() . x,this.getBounds().y-100);

}else if(direction=="DOWN"){

this.setLocation(this.getBounds(). x ,this.getBounds().y+100);

}else if(direction=="LEFT"){

this.setLocation(this.getBounds().x - 100,this.getBounds().y);

}else{

this.setLocation(this.getBounds().x+100,this.getBounds().y ) ;

}

}

}