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ą.
runcode
i bots
)?