Mostrando entradas con la etiqueta p5. Mostrar todas las entradas
Mostrando entradas con la etiqueta p5. Mostrar todas las entradas

viernes, 4 de mayo de 2007

p5: no me pasa las pruebas, ¿qué hago mal?

La respuesta tradicional es "pon trazas".
El comportamiento del simulador es lo bastante complejo como para que
uno se pierda con facilidad.
Sólo unas trazas enfocadas en cada cosa pueden ayudar a "ver".

Por ejemplo, en Zorro,
puede ser muy útil tener una traza específica para el método encontrarComida

private final static Logger LOGGER_COMIDA =
Logger.getLogger("mundovirtual.Zorro.encontrarComida");

Aunque hay mucha libertad,
este podría ser un ejemplo de trazas cuando se ejecuta el TestAnimal

mundovirtual.Zorro.encontrarComida [info]: zorro <5, 5> [1] :: encontrarComida(..., %lt;5, 5>)
mundovirtual.Zorro.encontrarComida [finer]: busca en <6, 5>
mundovirtual.Zorro.encontrarComida [finer]: busca en <6, 4>
mundovirtual.Zorro.encontrarComida [finer]: busca en <4, 4>
mundovirtual.Zorro.encontrarComida [fine]: encontrado: conejo <4, 4> [0]
mundovirtual.Zorro.encontrarComida [finer]: busca en <6, 6>
mundovirtual.Zorro.encontrarComida [finer]: busca en <4, 5>
mundovirtual.Zorro.encontrarComida [finer]: busca en <4, 6>
mundovirtual.Zorro.encontrarComida [finer]: busca en <5, 6>
mundovirtual.Zorro.encontrarComida [finer]: busca en <5, 4>
mundovirtual.Zorro.encontrarComida [info]: encontrarComida devuelve <4, 4>

no olvides que la búsqueda es aleatoria:
en cada llamada se visitan las posiciones adyacentes en un orden diferente

jueves, 3 de mayo de 2007

p5: ¿hay que cambiar el constructor de Simulador?

Sí.
ArrayList<Object> -- pasa a -- List<Animal>

Algo así

/**
* Crea un simulador que trabajará con una serie de especies que se pasan como parámetro y que empieza en
* el primer paso de la simulación con una lista de animales prefijada.
*
* @param especies Lista con las clases que representan las distintas especies que se considerarán en el simulador.
* @param colores Lista con los colores a asignar a cada una de las especies que se indicó en el parámetro anterior, "especies".
* @param animales Lista con los animales a incluir en el campo y con los que se iniciará la simulación. Cada animal ha de tener correctamente prefijada su localización.
*/
public Simulador(List<Class> especies, List<Color> colores, List<Animal> animales) {