Foros del Web » Programación para mayores de 30 ;) » Java »

Programar un applet en java acotaciones porfavor

Estas en el tema de Programar un applet en java acotaciones porfavor en el foro de Java en Foros del Web. Muy buenas noches a todos! es mi primera consulta espero puedan ayudarme y asi insentivarme para poder ayudarles en alguna oportunidad desde ya muchas gracias ...
  #1 (permalink)  
Antiguo 17/06/2011, 19:28
 
Fecha de Ingreso: junio-2011
Mensajes: 1
Antigüedad: 12 años, 10 meses
Puntos: 0
Programar un applet en java acotaciones porfavor

Muy buenas noches a todos! es mi primera consulta espero puedan ayudarme y asi insentivarme para poder ayudarles en alguna oportunidad desde ya muchas gracias :)

Tengo el siguiente programa en Java sobre un buscaminas(bastante basico) lo tengo casi listo pero me falla en algo... no logro entender que sucede....

Cuando uno hace click en algun cuadrado, reviza la cantidad de bombas y pone el numero de bombas que hay al rededor, pero si colocas el click justo donde hay una bomba, la marca con X y pone todas de color rojo( las que tenian bombas) hasta ahi todo bien, pero cuando no tiene NINGUNA BOMBA al rededor falla el juego....

adjunto el codigo del buscaminas!

Código HTML:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Buscamina extends Applet implements ActionListener
{
private Button b[][]=new Button[5][5];//matris de botones
private Button Comenzar = new Button("Comenzar");//boton comenzar
private Button Otravez = new Button("Otra vez");//boton volver a jugar
private int A[][]=new int[5][5];//matriz con bombas
private int i,j,x=150,y=80,f,c,aux,v;//variables varias
private Color Z = new Color(211,211,211);//color gris
private Color Y = new Color(160,82,45);//color cafe
private Color X = new Color(198,226,255);//color celeste
private Image F[]=new Image[5];//arreglo de imagenes
private AudioClip SonidoActual;//sonido
private boolean w;//variable para determinar si se gano o no


public void init()
{
this.setLayout(null);
this.setSize(400,283);//configuracion de pantalla por defecto
Comenzar.setBounds(260,200,100,30);//modificacion de posicion y tamaño de boton comenzar
Comenzar.setBackground(X);//modificacion a color celeste del boton comenzar
Otravez.setBounds(260,240,100,30);//modificacion de posicion y tamaño de boton otravez
Otravez.setBackground(Y);//modificacion a color cafe de boton otravez
Comenzar.addActionListener(this);//agregar actionListener a boton comenzar
Otravez.addActionListener(this);//agregar actionListener a boton otravez
add(Comenzar);//agregar boton comenzar a la pantalla
add(Otravez);//agregar boton otravez a la pantalla

//setBackground(Color.black);

for(i=0;i<5;i++){
for(j=0;j<5;j++){
A[i][j]=(int)(Math.random()*5);
b[i][j]=new Button();
b[i][j].setBounds(x,y,20,20);
x=x+20;
b[i][j].setBackground(Z);
b[i][j].addActionListener(this);
add(b[i][j]);
}
x=150;
y=y+20;
}
w=false;

}

public void paint(Graphics g){
F[1]=getImage(getCodeBase(),"fondo.jpg");
if(w==false){
g.drawImage(F[1],0,0,this);
}else{
F[2]=getImage(getCodeBase(),"reset.jpg");
g.drawImage(F[2],0,0,this);
}

}

public void actionPerformed(ActionEvent e){

for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(e.getSource()==b[i][j]){
if(A[i][j]!=1){
BBC(i,j);
}else{
mostrarBombas();
}
}
}
}

if(e.getSource()==Comenzar){
comenzar();
}

if(e.getSource()==Otravez){
re();
}



}

//aqui busca las bombas

public void BBC(int i, int j){
v=0;
if( (i>0) && (j>0) && (A[i-1][j-1]==1) ) v++;
if( (i>0) && (A[i-1][j] ==1) ) v++;
if( (i>0) && (j<4) && (A[i-1][j+1]==1) ) v++;
if( (j>0) && (A[i][j-1] ==1) ) v++;
if( (j<4) && (A[i][j+1] ==1) ) v++;
if( (i<4) && (j>0) && (A[i+1][j-1]==1) ) v++;
if( (i<4) && (A[i+1][j] ==1) ) v++;
if( (i<4) && (j<4) && (A[i+1][j+1]==1) ) v++;

marcarbuenas(i,j);

//se supone que si no encontro ninguna debe devolver el metodo anterior para todos los cuadros de alrededor pero aqui falla

if(v==0){
BBC(i-1, j-1);
BBC(i-1,j);
BBC(i-1, j+1);
BBC(i,j-1);
BBC(i,j+1);
BBC(i+1,j-1);
BBC(i+1,j);
BBC(i+1,j+1);
}
}

//metodo para poner en cuadrado numero de bombas al rededor

public void marcarbuenas(int i, int j){
b[i][j].setBackground(Color.white);
if(v==0){
b[i][j].setLabel(" ");
}else{
b[i][j].setLabel(Integer.toString(v));
}

}
//metodo que marca todas las bombas de color rojo y agrega X
public void mostrarBombas(){

for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(A[i][j]==1){
b[i][j].setBackground(Color.red);
b[i][j].setLabel("X");
}
}
}

w=true;
SonidoActual.stop();
SonidoActual=getAudioClip(getCodeBase(), "Crash.wav");
SonidoActual.play();
repaint();


}
//metodo para comenzar el juego
public void comenzar(){

SonidoActual=getAudioClip(getCodeBase(), "tictac.wav");
SonidoActual.play();
repaint();

}
//metodo para resetear el juego
public void re(){

SonidoActual.stop();

w=false;

for(i=0;i<5;i++){
for(j=0;j<5;j++){
A[i][j]=(int)(Math.random()*5);
b[i][j].setBackground(Z);
b[i][j].setLabel("");
}
}

repaint();

}
}
ese es el codigo del programa, ademas de ello debo conectarlo a una base de datos en MySql mediante Bluej aun nose como pero trabajo con el, ocuparia otras erramientas pero mi pc es de pocos recursos

desde ya muchas gracias!

Última edición por efernandez2009; 18/06/2011 a las 21:55

Etiquetas: applet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:50.