Конкурс открыт постоянно - Обновлено 10 августа 2017
Хотя 5 июня 2017 года я объявил победителя (который останется лучшим ответом), я буду набирать новых ботов и обновлять результаты.
Результаты 5 июня
Поздравляем user1502040
Поскольку связей нет, я показываю только процент выигранных матчей.
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%
Я создал Google Sheet с таблицей результатов каждой пары: https://docs.google.com/spreadsheets/d/1KrMvcvWMkK-h1Ee50w0gWLh_L6rCFOgLhTN_QlEXHyk/edit?usp=sharing
Благодаря дилемме Петри я смог справиться с этим королем горы.
Игра
Игра представляет собой простой «камень-ножницы-бумага» с изюминкой: очки, набранные с каждой победой, увеличиваются во время матча (ваши R, P или S загружаются).
- Бумага побеждает Рок
- Ножницы выигрывает бумага
- Рок выигрывает ножницы
Победитель получает столько же очков, сколько его нагрузка на игру.
Проигравший увеличивает на 1 нагрузку на свою игру.
В случае ничьей каждый игрок увеличивает нагрузку на свою игру на 0,5.
После 100 игр победителем становится тот, у кого больше очков.
Например: P1 имеет нагрузки [10,11,12] (камень, бумага, ножницы) и P2 [7,8,9]. P1 играет R, P2 играет P. P2 выигрывает и получает 8 очков. Нагрузки P1 становятся [11,11,12], нагрузки P2 остаются прежними.
Технические характеристики
Ваша программа должна быть написана на Python (извините, я не знаю, как с этим обращаться в противном случае). Вы должны создать функцию, которая будет принимать каждую из этих переменных в качестве аргумента при каждом выполнении:
my_points, opp_points, my_loaded, opp_loaded, my_history, opp_history
points - Текущие очки (твой и твой опп)
loaded- Массив с нагрузками (по порядку RPS) (ваш и ваш опп)
history- Строка со всеми пьесами, последний персонаж - последняя игра (ваша и ваш оппонент)
Вы должны вернуться "R", "P"или "S". Если вы вернете что-то другое, это будет автоматический проигрыш в матче.
правила
Вы не можете изменить встроенные функции.
тестирование
Я буду держать Git обновленным с кодом и всеми ботами, отвечающими требованиям: https://github.com/Masclins/LoadedRPS
судейство
Победитель будет определен путем выбора человека с наибольшим количеством выигрышных матчей после 1000 полных раундов. Связи будут нарушены связанными спичками. Играется 1000 матчей, а не один, потому что я ожидаю много случайностей, и таким образом случайность будет менее актуальной.
Вы можете отправить до 5 ботов.
Конкурс заканчивается 4 июля (это будет последний день, когда я приму любой ответ), а 5 июля я опубликую итоговые результаты (возможно, постараюсь опубликовать предварительную заявку раньше).
Поскольку это мой первый KOTH, я на 100% готов изменить что-либо для улучшения, например, количество матчей против каждого бота.
Отредактировано до 1000 матчей, так как я вижу, что это действительно случайность.
runcodeи bots)?