Você decidiu organizar um campeonato de pedra-papel-tesoura para descobrir quem é o melhor. Você não quer deixar a sorte decidir o vencedor, para que todos tenham que lhe dar sua tática por escrito antes da competição. Você também gosta de coisas simples, para que uma jogada de um competidor (mostrando pedra, papel ou tesoura) tenha que ser baseada apenas no turno anterior (RvR, RvP, RvS, PvR, PvP, PvS, SvR, SvP ou SvS). No primeiro turno, um jogador tem que mostrar um sinal fixo.
Você decidiu escrever um programa (ou função) para simular o campeonato.
Detalhes da competição
- Haverá pelo menos 2 participantes.
- Todo jogador joga exatamente uma partida com todos os outros.
- Uma partida dura 7 rodadas.
- Em cada rodada, o vencedor ganha 2 pontos, o perdedor não recebe nenhum. Em caso de empate, ambos os jogadores marcam 1 ponto.
- A pontuação de um jogador em uma partida é a soma dos seus pontos ao longo dos turnos da partida.
- A pontuação final de um jogador no campeonato é a soma de seus pontos em todas as partidas.
Detalhes da entrada:
- seu programa ou função recebe
N
10 caracteres de comprimento, cada um deles corresponde à estratégia de um jogador. Todos os caracteres são (minúsculos)r
p
ous
significam que, numa determinada situação, o jogador mostrará papel de pedra ou tesoura. - A primeira letra codifica o primeiro turno (em todas as partidas desse competidor). O segundo mostra o que acontece se a última rodada foi rock vs rock. Os próximos são RvP, RvS, PvR, PvP, PvS, SvR, SvP e SvS, onde a primeira letra é o sinal do jogador e a segunda é o oponente. Por exemplo,
rrpsrpsrps
significa que o jogador começa com rock e depois copia o último movimento do oponente. - Você pode inserir a lista de cadeias como uma lista / matriz ou dados semelhantes do seu idioma ou como uma cadeia. Neste último caso, algum tipo de caractere separador é obrigatório.
Detalhes da saída:
- Seu programa ou função deve produzir as pontuações finais de cada jogador na mesma ordem em que a entrada foi fornecida.
- As pontuações devem ser separadas por espaços ou novas linhas. É permitido espaço à direita ou nova linha.
Exemplos:
Entrada:
['rrpsrpsrps', 'rpppsprrpr']
Saída:
5 9
(as voltas são rvr rvp pvs svp pvr rvp pvs
)
Entrada:
['rrpsrpsrps', 'rpppsprrpr', 'ssssssssss']
Saída:
13 17 12
(as correspondências são 5-9
(1º vs 2º), 8-6
(1º vs 3º) e 8-6
(2º vs 3º))
Isso é código-golfe, portanto a entrada mais curta vence.
6-8
e o segundo perde contra o terceiro com 6-8
.