Objetivo
O peão preto quer vingança. Planeje seu último ataque.
Regras
O peão preto ( L
) começa na linha superior e desce para a linha inferior. Maximize os pontos obtidos, indicando o caminho com X
. Peões ( P
) são 1, bispos ( B
) e cavaleiros ( N
) 3, torres ( R
) 5 e rainhas ( Q
) 9. Não haverá reis na entrada.
Se houver mais de um caminho com a quantidade máxima de pontos, imprima qualquer um desses caminhos. Não haverá situações em que o peão não possa alcançar a linha inferior.
Exemplos
Entrada:
----L---
-----P--
------P-
--R--P-Q
----P-P-
---P-P-P
--P-N---
-P------
Resultado:
----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------
Resultado:
--L-----
-PX-----
P-X-----
-PX-----
P--X----
-P-X----
P--X----
-P-X----
code-golf
graph-theory
path-finding
chess
absinto
fonte
fonte
Respostas:
Python, 332
fonte
Ruby
260 258 255 241 236222Este programa define uma função (
s
) que, dada algumas linhas da placa, retorna o melhor caminho como uma string e o valor em pontos desse caminho.s
é recursivo, portanto, a cada passo, ele avalia todas as possibilidades e retorna a melhor.Aqui está uma versão online com testes: http://ideone.com/6eMtm4
A versão legível está disponível aqui: http://ideone.com/eoXUtp
Todas as etapas que tomei para reduzir o tamanho do código podem ser encontradas aqui .
fonte