Java - Ayuda con un juego

 
Vista:

Ayuda con un juego

Publicado por Alex (3 intervenciones) el 11/03/2008 02:45:43
Estoy iniciando en este lenguaje y estos diseñando un juego de rompecabezas de numeros pero me atore y es que quiero que se muevanlos numeros a la posision vacia y la verdad ya no se que onda... aqui pongo el avance que tengo que me segieren o si alguien me puede ayudar.

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
public class Laberinto extends Frame implements MouseListener,MouseMotionListener{
private int xc, yc;//
private int xm, ym;//guarda las coordenadas del lugar donde hacemos clic
private boolean clic;
private final int cx=100;
private final int cy=100;
private final int EX=100;
private final int EY=100;
private Random r=new Random();
private int score=0;
//inicia matriz
private int juego[][]={{1,2,3,0},
{5,6,7,8},
{9,10,11,12},
{13,14,15,4}};

//inicia constructor
public Laberinto(){
addWindowListener(new Cierre());//clase cierre
addMouseListener(this);
addMouseMotionListener(this);// monitor de moviemiento de raton
setTitle("Juego del Laberinto de números");
setSize(800,600);//genera el tamaño de la ventana
setVisible(true);//Muestra la ventana

}
public void paint(Graphics g){//aqui se definen todos los graficos
int i,j;
for (i=0;i<4;i++)
for(j=0;j<4;j++)
if (juego [i][j]==0)
dibVacio(g,cx+j*EX,cy+i*EY);
else
dibFicha(g,cx+j*EX,cy+i*EY,juego[i][j]);
}

//Dibuja un cuadro (vacio)
public void dibVacio(Graphics g,int px, int py){
g.setColor(Color.red);
g.fillRect(px,py,EX,EY);
}

public void dibFicha(Graphics g, int px, int py, int n){
g.setColor(Color.blue);//Color del tablero color cyan
g.fillRect(px,py,EX, EY);//relleno del tablero color cyan
g.setColor(Color.yellow);//Color de los número
g.drawRect(px,py,EX,EY);//Dibuja un rectancugo de cada ficha solo con linea
g.drawString(new Integer(n).toString(),px+EX/2,py+EY/2);//dibuja textos
//Dibuja el contador y el texto numero de Movimientos
g.setColor(Color.black);
g.drawString(new Integer(score).toString(),60,80);//numero
g.setColor(Color.red);
g.drawString("Número de Movimientos",60,60);//texto
}

public void dibTache(Graphics g, int px, int py){
g.setColor(Color.red);
g.drawLine(px-10, py-10,px+10,py+10);//coordenadas
g.drawLine(px-10, py+10,px+10,py-10);
}

//______________________________________________
//inicia enevntos del mouse
public void mouseEntered(MouseEvent me){

}
public void mouseExited(MouseEvent me){

}
public void mousePressed(MouseEvent me){

}
public void mouseReleased(MouseEvent me){

}
public void mouseClicked(MouseEvent me){//EVENTO DEL CLIC
int x=me.getX();//COORDENADAS GRAFICAS
int y=me.getY();
int i=((y-cy)>0)?(y-cy)/EY:-1;//coordenadas logicas
int j=((x-cx)>0)?(x-cx)/EX:-1;
int a;
//int i=(y-cy)/EY;//COORDENADAS LOGICAS
//int j=(x-cx)/EX;
//_______________________________

//______________________________


if ((i>=0)&&(i<4)&&(j>=0)&&(j<4)){
juego[i][j]=0;
repaint();
score+=1;//Incremento del contador
}

}
//_________________________________________________________
public void mouseMoved(MouseEvent me){//muestra los numeros de la posicion en pantalla
xm= me.getX();
ym= me.getY();
repaint(20,20,105,70);//area donde se mostraran los numeros
}
public void mouseDragged(MouseEvent me){

}
//inicia main
public static void main(String[]args){
Laberinto eg=new Laberinto();
}

}
//termina la clase EjemploGraficos
//________________________________________________________________
//inicia la nueva clase cierre
class Cierre extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder