Hola,
Cita:
Iniciado por elchapitas ... 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 ... 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