Objetivo
El peón negro quiere venganza. Trazar su último ataque.
Reglas
El peón negro ( L
) comienza en la fila superior y se mueve hacia abajo a la fila inferior. Maximice los puntos tomados, indicando el camino con X
. Los peones ( P
) son 1, obispos ( B
) y caballeros ( N
) 3, torres ( R
) 5 y reinas ( Q
) 9. No habrá reyes en la entrada.
Si hay más de una ruta que tiene la cantidad máxima de puntos, envíe cualquiera de esas rutas. No habrá situaciones en las que el peón no pueda alcanzar la fila inferior.
Ejemplos
Entrada:
----L---
-----P--
------P-
--R--P-Q
----P-P-
---P-P-P
--P-N---
-P------
Salida:
----L---
-----X--
------X-
--R--P-X
----P-X-
---P-X-P
--P-X---
-P--X---
Entrada:
--L-----
-P------
P-------
-P------
P--Q----
-P------
P-------
-P------
Salida:
--L-----
-PX-----
P-X-----
-PX-----
P--X----
-P-X----
P--X----
-P-X----
code-golf
graph-theory
path-finding
chess
Ajenjo
fuente
fuente
Respuestas:
Python, 332
fuente
Rubí
260258255241 236222Este programa define una función (
s
), que, dadas algunas filas del tablero, devuelve la mejor ruta como una cadena y el valor en puntos de esa ruta.s
es recursivo, por lo que en cada paso evalúa todas las posibilidades y devuelve la mejor.Aquí hay una versión en línea con pruebas: http://ideone.com/6eMtm4
La versión legible está disponible aquí: http://ideone.com/eoXUtp
Todos los pasos que tomé para reducir el tamaño del código se pueden encontrar aquí .
fuente