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

Tablero con Jbutton o Paint

Estas en el tema de Tablero con Jbutton o Paint en el foro de Java en Foros del Web. Buenas, hoy tomando unas cervezas un amiguete hemos estado discutiendo sobre como sería mas eficiente dibujar el tablero del buscaminas en Java. No hemos conseguido ...
  #1 (permalink)  
Antiguo 15/07/2014, 19:01
 
Fecha de Ingreso: enero-2013
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
Pregunta Tablero con Jbutton o Paint

Buenas, hoy tomando unas cervezas un amiguete hemos estado discutiendo sobre como sería mas eficiente dibujar el tablero del buscaminas en Java. No hemos conseguido llegar un acuerdo.

Yo personalmente lo haría con una clase Tablero y otra clase Casilla. En la clase Casilla guardaría las coordenadas x e y de cada casilla y con el método paint a partir de las coordenadas x e y dibujaría el cuadrado que se corresponde con la casilla. Obviamente la clase Tablero tendría otro método paint y que recorrería todas las casillas del tablero llamando al metodo pant de las mismas.

El, por el contrarío lo haría con botones, desde mi punto de vista así sería mas fácil pero personalmente lo veo algo cutre y "creo" que sería mas ineficiente al tener que dibujar tantos botones, incluso no se si a cada botón tendría que esperar un evento.

Seguramente este equivocado, ¿Qué opináis vosotros? ¿Qué forma creéis que es mas eficiente?

Un saludo!
  #2 (permalink)  
Antiguo 16/07/2014, 10:51
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Tablero con Jbutton o Paint

Hola,

Cita:
Iniciado por elchapitas Ver Mensaje
... Yo personalmente lo haría con una clase Tablero y otra clase Casilla. En la clase Casilla guardaría las coordenadas x e y de cada casilla y con el método paint a partir de las coordenadas x e y dibujaría el cuadrado que se corresponde con la casilla. Obviamente la clase Tablero tendría otro método paint y que recorrería todas las casillas del tablero llamando al metodo pant de las mismas. ...
Yo creo que definitivamente el método mas eficiente sería pintar cada una de las casillas. Lo único con lo que no estoy de acuerdo es con guardar las coordenadas X y Y en la clase Casilla, el motivo es que, si las casillas no se pueden mover de lugar, no hay motivo de guardar su posición independiente de cada una.

La clase Tablero sabe cuantas hay horizontalmente y verticalmente, y por consiguiente las pintaría secuencialmente, una tras otra, en las dos direcciones.

Cuando se sobrecarga el método paint(), normalmente debe ser lo más eficiente posible, porque se llama muchas veces, y lo mejor es evitar llamadas a métodos adicionales, por lo que yo, en lo personal, no crearía un método paint() en la clase Casilla, sino pintaría todo en el paint() del Tablero.

Eso si es un Tablero, por ejemplo, si fuera un campo de futbol con sus jugadores, yo me animaría a crear el método paint() en la clase Jugador; porque la lógica de un Jugador sería mas compleja.

Cita:
Iniciado por elchapitas Ver Mensaje
... El, por el contrarío lo haría con botones, desde mi punto de vista así sería mas fácil pero personalmente lo veo algo cutre y "creo" que sería mas ineficiente al tener que dibujar tantos botones, incluso no se si a cada botón tendría que esperar un evento. ...
En este caso, que los botones no se mueven, y no existen animaciones costosas en todo el proceso, puesto que el algoritmo vendría siendo semejante a lo siguiente:

1. Esperar un click.
2. Cambiar la imágen del botón donde se hizo un click.
3. Si es mina entonces terminar, sino regresar al 1.

Creo que, posiblemente, no sea tan ineficiente usar los botones en este caso.

Eso si, no vas a dibujar completamente el botón de nuevo para ponerle diferentes bordes y pintar una animación en el botón, o personalizar el botón de una manera mas extensa, entonces no tiene sentido y es preferible dibujar el botón desde 0.

En este caso en específico del Buscaminas, creo que una u otra opción no sería tan ineficiente, las dos funcionarían bien dependiendo de la complejidad de la lógica dentro del botón y las animaciones.

Saludos,


ps:

Si quieres ver una implementación de un Tablero, parecida al concepto que estas exponiendo entonces posiblemente te sea de alguna ayuda:

http://www.forosdelweb.com/f14/segun...0/#post2607951
http://hackmangt.tripod.com/JPuzzle/source.html
  #3 (permalink)  
Antiguo 18/07/2014, 04:08
 
Fecha de Ingreso: enero-2013
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Tablero con Jbutton o Paint

Tienes razón, no sería necesario guardar las coordenadas de cada casilla.

Muchas gracias por tu opinión, siempre es interesante conocer diferentes puntos de vista.

Un saludo.

Etiquetas: jbutton, paint
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 18:49.