Para probar mapas sin tener que escribir el mapa a mano, hice cambios en el código:
http://jsfiddle.net/marlanga/25Upk/
Ahora el tamaño del mapa se crea en el constructor del juego, en la última línea del código.
El orden de los argumentos son: id del canvas, filas del mapa, columnas del mapa, y un array con la fila y la columna del jugador.
Las filas y columnas incluyen las "paredes" negras que envuelven a todo el mapa. Es decir, si pones 3,3, en realidad solo habrá 1 celda del mapa en blanco para recorrer.
Tu código, pantalaimon, parece que da soluciones óptimas en todos los casos. Felicidades.
Y el tuyo, NSD, sigue centrándose en luchar contra otras motos xd así que sabiendo cómo funciona tu IA, es posible crear un mapa y una situación inicial que haga que la IA se deje casillas libres, al menos con la que tienes hasta el momento. Es eficaz, pero no óptimo. Pero ya tienes una base con la que trabajar si se hace el reto de carreras de TRON entre IA's xd.
Mi código aún no he empezado a hacerlo, a ver si me pongo ya de una vez xd. Aunque no es nada sencillo el reto, otra vez me pasé con el nivel de dificultad xd.
Así que mientras tanto, supongo que pondré otro reto javascript mas sencillito para abrir la puerta a nuevos participantes:
RETO NUEVO Una aproximación al número PI
El ejercicio consiste en crear un código cuyo objetivo sea obtener el número PI, o una aproximación de él. Cualquier método para obtener el número PI será válido, aunque para evaluar este reto, me basaré en la "originalidad" o "rareza" del método empleado.
Obviamente, para obtener PI no se podrá utilizar valores "mágicos" o "precalculados" sin dar explicaciones válidas. Por ejemplo, todos sabemos que el (radio x 2 x PI) es el perímetro de la circunferencia, así que una aproximación incorrecta sería dividir el perímetro de una circunferencia ya calculada de antemano por el doble de su radio.
Lo ideal sería crear un método que cuantas mas veces ejecutes, mejor aproximación de PI dará.
Y aquí la música de ambientación:
http://www.youtube.com/watch?v=lEpX5NQSEz0
Ale, a currar.