Это мой 17-й день рождения, и вы приглашены на мою вечеринку!
И как всегда на вечеринках, будет торт.
Один торт ...
И вам нужно как можно больше этого.
Поскольку это справедливая вечеринка, каждый из нас скажет, сколько из моего торта мы хотим, и тот, кто сказал, что получит наименьшее количество, получит его. Затем все остальные повторяют процесс, пока пирог не исчезнет.
Вызов
- Учитывая ввод через аргументы командной строки в виде
total-degrees degrees-left total-people people-left
, вывод на стандартный выводinteger-bid-in-degrees
. - Если ваша ставка была наименьшей, вы получаете это количество торта и выходите в раунд.
- Если ваша ставка была не самой низкой, ваш бот получает ставку на оставшийся торт.
- В случае, если самые низкие ставки одинаковы, удаляемый человек будет выбран случайным образом.
- В конце раунда, как только весь торт ушел, или не осталось никого, кто бы мог на него претендовать, выигрывает человек с наибольшим количеством торта!
- В случае, когда в конце раунда два человека имеют самый большой срез одинакового размера, победитель выбирается случайным образом из записей на жеребьевке.
Игровой процесс
- Будет 17 раундов, победителем станет участник с наибольшим количеством побед.
- В случае ничьи, раунды будут играть до тех пор, пока не будет явного победителя.
- Каждый день я буду обновлять текущие оценки, чтобы люди могли обновлять свои записи.
представление
Вы должны написать свою запись как
Имя бота, язык
Insert Code Here
Объяснение / Случайные вещи здесь
Если ваша запись не отформатирована таким образом, контроллер НЕ сможет запустить вашу запись. Если я обнаружу, что это произошло с вашей записью, я сообщу вам об этом в комментарии и / или отредактирую ответ в правильном формате.
Ваша запись и хранение файлов
- Ваш бот может хранить файлы в
./data/
каталоге и больше нигде.- Не требуется, но, пожалуйста, храните ваши файлы как
botname*
- Вы не можете писать файлы в этом формате, если
botname
это не имя вашей записи. - Это означает, что вам разрешено перезаписывать другие файлы, которые вы не нашли в этом формате. Вы не должны делать это сознательно, пожалуйста, занимайтесь спортом.
- Ваш бот не должен предполагать, что необходимые ему файлы присутствуют, но он может предполагать, что он
./data/
существует. - Это потому , что я время от времени протирать
./data
каталог, я буду делать это , когда обходил на самом деле начать. (Но не между ними)
- Не требуется, но, пожалуйста, храните ваши файлы как
- Ваш бот может вообще не удалять файлы
- Вашему боту разрешено только читать файлы в
./data/
каталоге- Это означает, что вы можете посмотреть на другие файлы записей
Полученные результаты:
Кроткий выиграл конкурс! Молодец @ Cabbie407
А теперь немного случайной статистики:
Список позиций, в которые попал каждый бот: (Отлично с любым ботом, фигурирующим в этом списке, вы попали в топ-5 хотя бы раз!)
Кроткий, кроткий, эйдетический, эйдетический, кроткий, эйдетический, эйдетический, кроткий, кроткий, кроткий, дерзкий, кроткий, Givemethecake, Givemethecake, Givemethecake, кроткий, Eidetic
Eidetic, Eidetic, Meek, AlCakeSurfer, Eidetic, AlCakeSurfer, Meek, MyFairPlusAThird, Eidetic, Eidetic, Eidetic, Eidetic, MyFairPlusAThird, MyFairPlusAThird, Meek, MyFairPlusAThird, AlCakeSurfer
Reallythecake, AlCakeSurfer, AlCakeSurfer, Meek, AlCakeSurfer, Meek, AlCakeSurfer, AlCakeSurfer, Reallythecake, AlCakeSurfer, Meek, MyFairPlusAThird, Eidetic, Eidetic, Eidetic, Eidetic, Reallythecake
AlCakeSurfer, Reallythecake, MyFairPlusAThird, MyFairPlusAThird, MyFairPlusAThird, MyFairPlusAThird, MyFairPlusAThird, Eidetic, AlCakeSurfer, MyFairPlusAThird, MyFairPlusAThird, счет для пересылки, Relinquisher, RelinFisher
счет, MyFairPlusAThird, счет, счет, счет, счет, Relinquisher, Relinquisher, MyFairPlusAThird, счетчик, счет, Reallythecake, счет, ALittleOffTheTop, ALittleOffTheTop, счет, счет
Полный файл журнала для кометы во время работы можно найти здесь . Извините за изменение формата на полпути.
Я больше не буду участвовать в конкурсе, если вы хотите опубликовать больше записей, вы можете это сделать, контроллер можно найти в моем репозитории github для этого конкурса .
источник
{u'StatelyImitator': 719, u'Dieter': 4, u'Reallythecake': 0, u'Greedy': 0, u'Meek': 2, u'FlamingChainsaw': 0, u'Slim': 0, u'CharityBot': 0, u'Gentleman': 297, u'ALittleOffTheTop': 256, u'EatThe\u03c0': 0, u'Pig': 0, u'CakeEater': 330, u'BobBarker': 0, u'FloorBot': 5, u'Fatbot5000': 296, u'Moses': 360, u'Magician': 720, u'Hungry': 257, u'Imitator': 354} [u'Magician']
. Если ваш бот имеет оценку 0, значит он что-то делает не так.Ответы:
Кроткий, awk
Я видел это однажды в симуляции.
источник
Маг, Ява
Число 720 волшебно.
Это
будетпредназначались для тестирования контроллера инесерьезная запись.источник
Slim, Python 2
Этот бот на диете.
источник
SadBot :(, C ++
Ранее FairBot
FairBot просто хочет равную долю :(
Он хочет разделить торт равномерно среди всех участников.
(Он полностью ожидает, что другие боты сорвут его, потому что он знает, что они злые)
(Как на самом деле. Он одинок, он просто хочет, чтобы он нравился другим ботам)
(У него только что разорвались плохие отношения, и он проходит через очень грубое пятно, так что, если бы вы просто похлопали его по спине и улыбнулись, чтобы он почувствовал себя лучше, это бы действительно много значило.)
РЕДАКТИРОВАТЬ изменил программу, чтобы принимать входные данные из argv / c вместо stdin (честный бот все еще грустный .... Он хочет изменить свое имя на sadbot (именно поэтому он хочет торт))
источник
Халвер, Рубин
Скрупулезно, безупречно честно. Половина пирога для меня, половина пирога для всех остальных.
источник
CharityBot, Python 2
Добавляет еще один торт в смесь!
(Контроллер увидит это как запрос на 0 торта, фактически не увеличит размер торта)
источник
Величественный подражатель, Рубин
Вариант подражателя (если вы предпочитаете только одну запись на игрока, она заменяет эту). Сохраняет точный трек самого большого уже взятого среза и всегда ставит достаточно, чтобы превзойти этот срез. Также никогда не будет предлагать цену ниже, чем его справедливая доля остатка. Предполагается, что каталог для чтения / записи './data' уже существует; файлы могут быть уже там или нет.
источник
Дитер, Ява
Он не хочет делать ставки за слишком большой торт, поэтому он выбирает небольшой, но гарантированный случайный кусок.
источник
Пылающая бензопила, Ява
Вы когда-нибудь пробовали провести конкурс по разрезанию тортов бензопилой? Ну, теперь у вас есть. Это довольно разрушительно.
источник
Джентльмен, Ява
Он ждет людей, которые едят приличную долю или меньше, прежде чем съесть какой-нибудь торт. Чтобы жадный не получил лишний пирог, он берет как можно большую порцию.
источник
Боб Баркер, Ява
Это, вероятно, будет заменено более продуманным решением позже, но мне интересно, будет ли это работать. Это просто для того, чтобы поймать любых ботов, которые пытаются достичь максимума, и использовать измененную стратегию «Цена - это правильно», чтобы украсть их ответ. Может привести к эскалации с увеличением целочисленных вычитаний, это было бы здорово.
РЕДАКТИРОВАТЬ: эскалация начинается, встречное размещение против FloorBot
источник
args[1]
в int, прежде чем делать вычитание.Эйдетик, Python 2
Я запускал этого бота в контроллере пару раз, чтобы немного его обучить, он запоминает ставки, необходимые для победы в каждом раунде, а затем, после обучения, выходит в реальный мир и голосует вместе с остальными.
источник
AlCakeBot, Python
Это мой первый пост PCG; Я надеюсь, что это работает как задумано ...
Я люблю торт Неважно, какого рода. Мои коллеги знают. И мой бот тоже. Если весь торт все еще там, он предложит чуть менее половины его, надеясь получить самый большой кусок сразу. Если нет, он должен сделать ставку на что-то между половиной оставшегося торта и всем оставшимся тортом, используя квадратный синус в качестве весовой функции (
½ + sin² (fraction gone) / 2
). Причиной этого является то, что в начале игры должен быть шанс на общий больший (но немного меньший) срез, а также мало смысла пытаться быть джентльменом в конце игры.Поскольку я не очень увлекаюсь программированием, я буду признателен за любую указанную ошибку. Теперь давайте съесть немного торта = D
источник
Соус, Рубин
Соуси готов принять чуть менее половины оставшегося торта, если он больше, чем кто-либо другой получил или может получить (основываясь на секретном соусе).
источник
CoffeeJunkie, Coffeescript
Что такое торт без хорошей чашки кофе?
CoffeeJunkie предпочитает кофе кусочку торта, но тем не менее хочет попробовать его. Он всегда будет честен с другими участниками и постарается вспомнить, что случилось с последним тортом. Однако его чрезмерное потребление кофе ослабило его воспоминания ...
источник
npm install -g coffee-script; coffee CoffeeJunkie.coffee
Величественный саботаж, Рубин
Этот бот решил, что для устранения конкуренции он не должен быть спортивным.
Это клон Stately Imitator, за исключением того, что он портит файлы персистентности Stately Imitator (так как они не имеют префикса с именем бота), так что он принимает неправильные решения и выбирается последним.
источник
Трейдер, Р
Отслеживает эволюцию степеней левого и левого соотношений людей, и когда это отношение начинает снижаться, оно запрашивает достаточно справедливый срез, в противном случае запрашивает весь оставшийся торт. Вызывается с помощью
Rscript trader.r total-degrees degrees-left total-people people-left
.источник
IWMBAICBIWT, Python
IWMBAICBIWT (это был мой день рождения, и я плакал, потому что я хотел) предполагает, что существует связь между степенями слева и количеством людей, оставшихся. Будем надеяться, что это работает!
Должен работать во всех питонах.
Редактировать:
Хранение
sys.argv
входных данных было немного расточительным ...источник
degreesleft = int(inputs[2]); peopleleft = int(inputs[4])
и все время он торгует 1гость, питон 2
источник
счет, питон 2
Честная ставка.
источник
AlCakeSurfer, Python
Поскольку AlCakeBot сделал это плохо (и я ожидаю, что он будет еще хуже в конкурсе), вот моя вторая запись. Я назвал его Surfer, потому что у него очень хорошая функция волнения, которая заставляет его чувствовать себя серфером.
В принципе, он ставит в соответствии с тем
cos² (x * pi)
, гдеx
находится доля полученного торта. Эта волна для серфинга модифицируется с помощью функции взвешивания, которая заставляет его начинать с менее чем справедливой доли менее половины пирога, снижает свои ставки чуть выше справедливой доли примерно после того, как половина пирога уходит, а затем снова ускоряется на торги за весь торт позже. Он никогда не будет предлагать меньше, чем справедливая доля оставшегося торта плюс 5% (то есть процента от всего торта).Обратите внимание, что, хотя они могут быть братьями, если он получит значительно больший срез, чем AlCakeBot, последний даже не получит ни единой крошки этого. Они будут делить шоколад или печенье, но не торт!
источник
Голодный, Java
Всегда хочет свою долю оставшегося торта.
источник
Имитатор, Рубин
Цель состоит в том, чтобы получить больше пирога, чем кто-либо еще, а не максимизировать свой пирог. Таким образом, этот бот не согласится на меньшее, чем то, что уже приняли предыдущие боты. (Эта версия использует эвристику для этой проверки, я только что заметил, что нам действительно разрешено сохранять состояние, поэтому я, вероятно, опубликую вариант с состоянием позже).
источник
Действительно торт, Баш
А вот и картинка настоящего торта.
источник
Торт Пожиратель, Ява
Это ест торт. Вот и все.
источник
Relinquisher, Java
Базовый вариант моего другого бота, Нетерпеливый. Сначала он пытается понять все это, но по мере того, как все больше и больше гостей получают свою долю, его желание получить как можно больше медленно уменьшается. Я не слишком в этом; просто хочу посмотреть, как хорошо это делается.
источник
ALittleExtra, sh
Я просто хочу немного больше, становлюсь менее жадным, так как торт истощается
источник
MyFairPlusAThird, sh
источник
EatTheπ, Node.js
Очень любит π и думает, что торт
средстваэто π.источник
var totalπ=process.argv[2], πLeft=process.argv[3], totalPeople=process.argv[4], peopleLeft=process.argv[5];
чтобы заставить эту работу работать с контроллером. Он получил 97 из 3600 в области 41 ботов.Немного вне, Python 2
Так как «идеальный» алгоритм пытается равномерно распределить торт между ботами, мы возьмем чуть меньше. Требует полной справедливой доли общего торта, даже в последующих раундах, но искажает это число в сторону увеличения, поскольку оно основано на количестве оставшихся людей.
Я не запрограммирован в Python в длинном время, так что дайте мне знать , если мой код сломана ...
источник