Digamos que estoy tratando de escribir un juego simple de Tic-Tac-Toe. Tiene un campo M x N. El juego tiene solo un campo, por lo que probablemente debería estar representado con un singleton object
. De esta manera:¿Cómo inicializo object vals con valores conocidos solo en runtime?
object Field {
val height : Int = 20
val width : Int = 15
...
}
Pero yo no quiero codificar la altura y anchura, por lo que sería bueno que los que podrían ser pasados al objeto en tiempo de ejecución, a través de un constructor o algo así. Pero object
s no pueden tener constructores.
Bueno, podría cambiar height
y width
para ser var
s, y no val
s e introducir un nuevo método
def reconfigure (h:Int, w:Int) = {
height = h
width = w
}
y llamo al comienzo del juego. Pero tampoco es elegante.
Entonces, ¿hay una buena manera de hacerlo, es decir, tener el objeto val
inicializado con valores desconocidos antes del tiempo de ejecución?
Parece que cualquier solución va a requerir una 'var' en alguna parte. ¿Consideró que 'Field' es una clase con parámetros de constructor de alto y ancho? –
@KiptonBarros Lo hice. Pero solo necesito una instancia única de esa clase. Así que pensé que sería _ideológicamente_ mejor usar 'objeto'. –