Основные правила (отличные от моих)
История
Это 4579 год, у людей теперь есть две руки по 1001 палец в каждой. Палочки для еды стали основаны на очках. И у @Dennis больше представителей, чем у @Martin ... Рисованные красные круги теперь лишены голосов ... Джон Скит набрал 2 триллиона представителей на каждом сайте SE ... Да, я знаю, страшно
Палочки для еды - это ручная игра, которая была решена. Поэтому, чтобы обойти это, я создал его мутировавшим. Я увеличил количество пальцев.
Правила игры
То, как это играется
Каждый начинает с 2 рук. Каждая рука имеет 1001 палец. Каждая рука начинается с 1 (одного) пальца на каждой руке. Во время вашего хода вы можете «ударить» по руке других игроков. Для удара вы выбираете 1 из своих рук для удара и 1 из их рук для удара. У пораженной руки теперь есть количество пальцев, которыми они были вначале, и количество пальцев, которые были у вас на руке, которую вы ударили.
EX
P1: 1,1
P2: 1,1
, P1[0]
хиты P2[1]
. Теперь пальцы есть P1:1,1
P2:1,2
. Сейчас P2[1]
хиты p1[0]
. Пальцы теперь P1: 3,1
P2 1,2
.
Если одна рука поднимается на 1001 палец или больше, то эта рука отсутствует. Затем игрок, получивший раздачу (в свою очередь), может «разделиться». Разделение - это когда вы берете руку, которая находится внутри, и вдвое уменьшаете количество пальцев (округляет вверх) и отдаете эти пальцы другой руке, чтобы вернуть ее обратно.
EX
P1: 1000,2
P2 7,7
. P2[0]
хиты P1[0]
. Счет P1: 0,2
P2 1,1
. P1[1]
делит ход за свой ход, и счет P1: 1,1
и P2 7,7
.
Игра заканчивается, когда у одного игрока обе руки. Очки оцениваются по количеству пальцев, которые есть у победителя. Больше очков = лучше. Проигравший не получает очков.
Есть и другие правила, которые здесь используются.
Все играют всех (круговой)
эндшпиль
Суммируйте свои очки за каждый выигранный раунд. Затем усредните все баллы. Разделите ваш итог на средние баллы и получите окончательный результат. Большинство очков выигрывают.
Актуальные правила
Пожалуйста, не пытайтесь решить игру. Я действительно должен быть в состоянии запустить это: P
Убедитесь, что бот может быстро бегать. Судя по продолжительности раундов, это займет некоторое время.
Все библиотеки, необходимые в вашей программе, должны быть в библиотеке по умолчанию Python. Также перечислите те, которые вам нужно импортировать. Импорт будет только основной импорт (по математике я: import math
)
Ответы должны работать в Python 3.x
укротитель
У вашего бота будет собственный файл Python 3 с play
функцией.
play
будут переданы два списка по два номера в каждом. Это число указывает, сколько пальцев на каждой руке. Первый список - ваша собственная рука.
Если вы решите поразить руку другого игрока, верните список из двух битов. Первый бит - это индекс руки, которую вы используете для удара ( 0
для первого1
для последнего), а второй бит - это индекс руки, которую вы бьете по противнику.
Если вы решили разделить, верните любое другое истинное значение.
Тада!
Контроллер можно найти здесь . Сохраните каждого бота в своем собственном файле и перечислите имя каждого бота (без .py
) в botnames
.
Конечная нота:
Вы и другой бот по очереди идете первыми. Если игра не заканчивается в 100 000 (сто тысяч) раундов, игра будет прервана, и ни один бот не выиграет.
Контроллер не защищен от движений, выполняемых вечно, но ненужные накладные расходы будут сильно осуждены.
источник
My handler is very simple, your bot must do it's logic then adjust the the finger scores as needed, remember!
Что, так что мы те, кто делает вычисления для KoTH?Ответы:
CodingAndAlgorithms
Этот ответ на самом деле использует кодирование и алгоритмы, в отличие от других до сих пор! ссылка: imgur (также превосходит все ответы, опубликованные до этого)
источник
CautionBot
CautionBot не хочет причинять слишком много неприятностей, поэтому он ударяет по меньшей руке противника своей меньшей рукой, если у него есть обе руки, и в противном случае разделяется. Однако CautionBot не дурак, поэтому, если он может взять руку противника, не теряя сразу следующего хода, он сделает это вместо обычного хода.
источник
Эквалайзер
Если в Эквалайзере отсутствует рука, он разделится. В противном случае, он поражает наименьшую руку противника своей самой большой рукой.
источник
агрессор
Другой стартовый бот, Агрессор, ударит большую руку противника большей своей собственной рукой, если обе его руки не пусты; в противном случае это раскалывается.
источник
RandomBot
Просто для начала, вот бот, который делает случайный удар, если его руки не пусты; в противном случае, расщепляется.
Гольф, потому что почему бы и нет: 3
источник
ошибка
Да, это имя бота.
Я пришел к этому путем тестирования с другими ботами. Тем не менее, он последовательно второй в моей модели. Так что в конечном итоге я сделаю еще одного бота.
Изменить: я не могу написать ни одного бота, который побеждает CautionBot, и мое дополнительное тестирование, кажется, показывает, что это второй лучший, а не второй худший.
источник
марафонец
Я подправил код Агрессора, предоставленный «HyperNeutrino», чтобы просто ударить меньшего из противников двумя руками с меньшим из его рук. Конечно, это очень глупая стратегия, но я не могу отказаться от того, чтобы быть на вершине чарта! (Даже если этот график будет потери)
Я не уверен, что этот код будет работать без ошибок, потому что я не смог проверить его из-за того, что на работе. Тем не менее, он должен работать без нареканий.
источник