No jogo Stratego, a principal mecânica do jogo é quando você ataca a peça de um oponente com a sua. Nesse desafio, seu trabalho é simular uma dessas batalhas e dizer quem sobrevive.
Especificações
Você receberá como entrada um par de strings representando as peças do Stratego. As peças são uma das "S 1 2 3 4 5 6 7 8 9 10 B"
( S
é o Spy e B
são bombas). O primeiro do par será o atacante e o segundo o atacado.
Aqui estão as regras para determinar os resultados de uma batalha:
- O número mais elevado bate o menor número:
["4", "6"] -> ["6"]
. - Se ambos são os mesmos, então ambos morrer:
["7", "7"] -> []
. - Spies estão na parte inferior, por baixo mesmo
1
:["S", "2"] -> ["2"]
. - No entanto, se um espião ataca o
10
, em seguida, o espião ganha:["S", "10"] -> ["S"]
. - Mas as regras normais ainda se aplicam se o
10
é o ataque:["10", "S"] -> ["10"]
. - Se alguma coisa ataca uma bomba, a bomba ganha:
["5", "B"] -> ["B"]
. - No entanto, um mineiro (a
3
), pode desarmar uma bomba:["3", "B"] -> ["3"]
. - Uma bomba nunca será o atacante.
- Um observador (a
1
) pode atacar usando o mecanismo normal, mas também pode tentar "adivinhar" a classificação do outro jogador, o que pode ser indicado com qualquer notação sensata. - Se eles adivinhar corretamente, o outro pedaço morre:
["1(5)", "5"] -> ["1"]
. - Se errar, nada acontece:
["1(3)", "5"] -> ["1", "5"]
. - Spotters pode detectar bombas:
["1(B)", "B"] -> ["1"]
.
Isso é código-golfe , então o código mais curto em bytes vence!
(Você pode usar os exemplos lá em cima como casos de teste, porque tenho preguiça de reuni-los todos em uma lista).
"Victory!"
para-los, mas não queria coisas complicar demais
2
s, e não houve 1
s no meu jogo Stratego ... (ou são apenas modificado para o propósito do desafio?)