Contest aperto permanentemente - Aggiornato il 10 agosto 2017
Anche se il 5 giugno 2017 ho dichiarato un vincitore (che sarà mantenuto come la migliore risposta), cercherò nuovi robot e aggiornerò i risultati.
Risultati del 5 giugno
Congratulazioni user1502040
Dal momento che non ci sono pareggi, mostro solo la percentuale di partite vinte.
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%
Ho creato un foglio di Google con la griglia dei risultati di ciascun abbinamento: https://docs.google.com/spreadsheets/d/1KrMvcvWMkK-h1Ee50w0gWLh_L6rCFOgLhTN_QlEXHyk/edit?usp=sharing
Grazie al dilemma di Petri mi sono trovato in grado di gestire questo re della collina.
Il gioco
Il gioco è un semplice "Rock-Paper-Scissors" con una svolta: punti guadagnati con ogni aumento di vittoria durante la partita (le tue R, P o S vengono caricate).
- La carta vince il rock
- Le forbici vincono la carta
- Il rock vince le forbici
Il vincitore ottiene tanti punti quanto il suo carico sul suo gioco.
Il perdente aumenta di 1 il carico sul suo gioco.
In caso di pareggio, ogni giocatore aumenta il carico del suo gioco di 0,5.
Dopo 100 giochi, quello con più punti è il vincitore.
es: P1 ha carichi [10,11,12] (Rock, Paper, Scissors) e P2 [7,8,9]. P1 gioca R, P2 gioca P. P2 vince e ottiene 8 punti. I carichi P1 diventano [11,11,12], i carichi P2 rimangono invariati.
Specifiche della sfida
Il tuo programma deve essere scritto in Python (scusami, altrimenti non so come gestirlo). Devi creare una funzione che prenda ciascuna di queste variabili come argomento per ogni esecuzione:
my_points, opp_points, my_loaded, opp_loaded, my_history, opp_history
points
- Punti attuali (i tuoi e i tuoi avversari)
loaded
- Matrice con carichi (in ordine di RPS) (tua e del tuo opp)
history
- Stringa con tutti i giochi, l'ultimo personaggio è l'ultimo gioco (il tuo e il tuo opp)
Devi tornare "R"
, "P"
o "S"
. Se restituissi qualcosa di diverso, sarebbe una perdita automatica della partita.
Regole
Non è possibile modificare le funzioni integrate.
analisi
Terrò un Git aggiornato con il codice e tutti i robot compiting: https://github.com/Masclins/LoadedRPS
A giudicare
Il vincitore verrà deciso selezionando la persona con il maggior numero di partite vincenti dopo 1000 round-robin completi. I legami saranno spezzati dalle partite legate. Si stanno giocando 1000 partite anziché una perché mi aspetto molta casualità, e in questo modo la casualità sarebbe meno rilevante.
Puoi inviare fino a 5 robot.
Il concorso termina il 4 luglio (che sarà l'ultimo giorno in cui accetterò qualsiasi risposta), e il 5 luglio pubblicherò la classifica finale (potrebbe provare a pubblicare un anticipo prima).
Dato che questo è il mio primo KOTH, sono aperto al 100% a cambiare qualsiasi cosa per migliorare, come il numero di partite giocate contro ogni bot.
Modificato per 1000 partite, dal momento che vedo che c'è davvero molta casualità.
runcode
e bots
)?