Concurso aberto permanentemente - Atualizado em 10 de agosto de 2017
Embora em 5 de junho de 2017 tenha declarado vencedor (que será mantido como a melhor resposta), estarei criando novos bots e atualizando os resultados.
Resultados 5 de junho
Parabéns user1502040
Como não há empates, mostro apenas a% de partidas vencidas.
Statistician2
- 95,7%
Fitter
- 89,1%
Nash
- 83,9%
Weigher
- 79,9%
ExpectedBayes
- 76,4%
AntiRepeater
- 72,1%
Yggdrasil
- 65,0%
AntiGreedy
- 64,1%
Reactor
- 59,9%
NotHungry
- 57,3%
NashBot
- 55,1%
Blodsocer
- 48,6%
BestOfBothWorlds
- 48,4%
GoodWinning
- 43,9%
Rockstar
- 40,5%
ArtsyChild
- 40,4%
Assassin
- 38,1 %
WeightedRandom
- 37,7%
Ensemble
- 37,4%
UseOpponents
- 36,4%
GreedyPsychologist
- 36,3%
TheMessenger
- 33,9%
Copycat
- 31,4%
Greedy
- 28,3%
SomewhatHungry
- 27,6%
AntiAntiGreedy
- 21,0%
Cycler
- 20,3%
Swap
- 19,8%
RandomBot
- 16,2%
Criei uma planilha do Google com a grade de resultados de cada pareamento: https://docs.google.com/spreadsheets/d/1KrMvcvWMkK-h1Ee50w0gWLh_L6rCFOgLhTN_QlEXHyk/edit?usp=sharing
Graças ao dilema de Petri , encontrei-me capaz de lidar com esse rei da colina.
O jogo
O jogo é uma simples "pedra-papel-tesoura" com um toque: os pontos ganhos a cada vitória aumentam durante a partida (seu R, P ou S são carregados).
- Paper ganha Rock
- Tesoura ganha Papel
- Pedra vence Tesoura
O vencedor ganha tantos pontos quanto sua carga em seu jogo.
O perdedor aumenta em 1 a carga em seu jogo.
No caso de empate, cada jogador aumenta a carga em seu jogo em 0,5.
Após 100 jogadas, a que tiver mais pontos é o vencedor.
por exemplo: P1 possui cargas [10,11,12] (Pedra, papel, tesoura) e P2 [7,8,9]. P1 joga R, P2 joga P. P2 vence e ganha 8 pontos. As cargas P1 se tornam [11,11,12], as cargas P2 permanecem as mesmas.
Especificações do desafio
Seu programa deve ser escrito em Python (desculpe, não sei como lidar com isso de outra forma). Você deve criar uma função que aceite cada uma dessas variáveis como argumento em cada execução:
my_points, opp_points, my_loaded, opp_loaded, my_history, opp_history
points
- Pontos atuais (seu e seu opp)
loaded
- Matriz com cargas (em ordem RPS) (sua e do seu opp)
history
- String com todas as jogadas, o último personagem é a última jogada (sua e da sua opp)
Você deve retornar "R"
, "P"
ou "S"
. Se você devolver algo diferente, seria uma perda automática da partida.
Regras
Você não pode alterar as funções internas.
Teste
Manterei um Git atualizado com o código e todos os bots competindo: https://github.com/Masclins/LoadedRPS
A julgar
O vencedor será decidido selecionando a pessoa com mais vitórias após 1000 rodadas completas. Os empates serão quebrados por jogos empatados. 1000 partidas estão sendo disputadas em vez de uma, porque espero muita aleatoriedade, e dessa forma a aleatoriedade seria menos relevante.
Você pode enviar até 5 bots.
O concurso termina no dia 4 de junho (que será o último dia em que eu aceito qualquer resposta) e, no dia 5 de junho, publicarei as classificações finais (tente publicar uma promoção antes).
Como este é o meu primeiro KOTH, estou 100% aberto a mudar qualquer coisa para melhorar, como o número de partidas disputadas contra cada bot.
Editado para 1000 correspondências, pois vejo que realmente existe muita aleatoriedade.
runcode
e bots
)?