Konkurs trwale otwarty - zaktualizowany 10 sierpnia 2017 r
Mimo że 5 czerwca 2017 roku ogłosiłem zwycięzcę (który zostanie zachowany jako najlepsza odpowiedź), będę przeglądał nowe boty i aktualizował wyniki.
Wyniki z 5 czerwca
Gratulacje dla użytkownika 1502040
Ponieważ nie ma remisów, pokazuję tylko% wygranych meczów.
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%
Utworzyłem Arkusz Google z siatką wyników każdego parowania: https://docs.google.com/spreadsheets/d/1KrMvcvWMkK-h1Ee50w0gWLh_L6rCFOgLhTN_QlEXHyk/edit?usp=sharing
Dzięki dylematowi Petri mogłem poradzić sobie z tym Królem Wzgórza.
Gra
Gra jest prosta „Rock-Paper-Scissors” z niespodzianką: Punkty zdobywane z każdym wzrostem zwycięstwa podczas meczu (twoje R, P lub S są ładowane).
- Paper wygrywa Rock
- Nożyczki wygrywają papier
- Rock wygrywa nożyczkami
Zwycięzca otrzymuje tyle punktów, ile obciążenia w swojej grze.
Przegrany zwiększa o 1 obciążenie swojej gry.
W przypadku remisu każdy gracz zwiększa obciążenie swojej gry o 0,5.
Po 100 grach wygrywa ten, który ma więcej punktów.
np .: P1 ma obciążenia [10,11,12] (kamień, papier, nożyczki) i P2 [7,8,9]. P1 gra R, P2 gra P. P2 wygrywa i otrzymuje 8 punktów. Obciążenia P1 stają się [11,11,12], obciążenia P2 pozostają takie same.
Specyfikacja wyzwania
Twój program musi być napisany w języku Python (przepraszam, nie wiem, jak inaczej go obsłużyć). Masz utworzyć funkcję, która będzie traktować każdą z tych zmiennych jako argument przy każdym wykonaniu:
my_points, opp_points, my_loaded, opp_loaded, my_history, opp_history
points - Aktualne punkty (twoje i twojego przeciwnika)
loaded- Tablica z ładunkami (w kolejności RPS) (twoja i twój przeciwnik)
history- Łańcuch ze wszystkimi zagraniami, ostatnia postać to ostatnia gra (twoja i twój przeciwnik)
Musisz wrócić "R", "P"albo "S". Jeśli zwrócisz coś innego, będzie to automatyczna przegrana meczu.
Zasady
Nie można zmieniać wbudowanych funkcji.
Testowanie
Będę na bieżąco aktualizować Gita za pomocą kodu i wszystkich botów kompilujących: https://github.com/Masclins/LoadedRPS
Osądzać
Zwycięzca zostanie wyłoniony przez wybór osoby, która wygra najwięcej meczów po 1000 pełnych rundach. Remisy zostaną zerwane przez remisy. Rozgrywanych jest 1000 meczów, a nie jeden, ponieważ spodziewam się dużo losowości. W ten sposób losowość byłaby mniej istotna.
Możesz przesłać do 5 botów.
Konkurs kończy się 4 lipca (to będzie ostatni dzień, w którym przyjmę odpowiedź), a 5 lipca opublikuję ostatnie stadiony (może postaram się zamieścić awans).
Ponieważ jest to mój pierwszy KOTH, jestem w 100% otwarty na zmiany w celu ulepszeń, takich jak liczba meczów rozegranych z każdym botem.
Edytowano do 1000 dopasowań, ponieważ widzę, że naprawdę wiąże się to z przypadkowością.
runcodei bots)?