Вы иностранный трейдер, надеющийся получить прибыль. Есть 5 товаров, которыми люди хотят торговать: A
колосья, B
весла, C
анари, D
аффилдс и E
арвиг. Начиная с зимы, вам нужно решить, что производить. Затем осенью вы путешествуете и проводите свои дни, торгуя с прибылью.
Игровой процесс
Вы начинаете игру с 10 каждого продукта в хранилище. Каждый год вы будете потреблять 2 каждого продукта.
В начале игры вы получаете список из 5 продуктов, а также сумму, которую вы сможете производить каждый год (например:) 5-A,6-B,3-C,12-D,4-E
. Затем вы вернете букву от А до Е, решая, что производить.
Затем, в осенний период, вы представите свою продукцию (в том числе на хранении) на рынке. У вас есть 50 ходов для торговли.
Вы должны решить, хотите ли вы P
продать, продать S
или L
оставить рынок. Затем покупатели будут случайным образом соединяться с продавцами. Если у группы есть дополнительные, случайные дополнительные пропустят этот ход. Если трейдер будет пропущен, то они будут получать S
, в противном случае T
. Продавец должен решить, что он хочет продать, и количество (например:) 3-A
, а затем то, что он примет (например:) 5-B,2-D,1-E
(значения являются любыми или не всеми ). Затем покупателю сообщают, какой товар продает продавец, затем товары, которые продавец возьмет за него, и он может выбрать товар для обмена (напр., D
Или бесплатно X
).
После того, как все сделки завершены, или после того, как вы покинете рынок, вы будете потреблять по 2 каждого продукта, и год начинается заново. Если у вас есть менее 2 из 1 продукта, вы умрете (и сдали Q
).
Ваша оценка будет равна количеству ваших последних лет, и после 50 игр ваши оценки будут усреднены для вашей общей оценки.
Дополнительные ходы
В любое время вы можете вернуться, G
чтобы запросить ваш товар
В любое время вы можете вернуться, N
чтобы запросить количество новых продуктов в вашем инвентаре (произведенных любым игроком в прошлом году, и новые продукты будут проданы раньше, чем старые продукты).
В любое время вы можете вернуться T
к текущей Turn фразы: P
roduce, M
arket или T
Радинг
Во время торговли вы можете запросить I
идентификатор, уникальный для игрока, с которым вы торгуете .
Во время торговли вы можете вернуться, M
чтобы запросить количество людей, торгующих
Как кодировать это:
Вы можете использовать любой стандартный язык и включать command.txt
команду, которая является вашей программой для запуска.
Общий поток вашей программы должен быть:
Get productivity
While alive:
Output product you want to produce
While in trading:
Output whether you want to purchase or sell
Get whether or not you were skipped. If not skipped:
If purchasing:
print product you offer, and products you will accept
Else:
Get product offered, products being accepted, and choose the product you will give
У меня есть программа для тестирования здесь . Чтобы использовать его, создайте папку в папке с ботами с именем вашего бота. Добавьте a command.txt
, вашу программу и все, что нужно вашей программе. Я буду добавлять материалы по мере их поступления. Если вы не хотите устанавливать языки, необходимые для запуска некоторых или всех из них, вам просто нужно удалить command.txt в папке бота.
Внутренние работы
Будет 5 ботов для каждой представленной программы. Идентификатор будет отличаться для ботов одного типа.
Я назову сумму, на которую человек может произвести данный продукт, производительностью. Каждому продукту будет присвоена базовая производительность, при которой вся базовая производительность будет составлять до 30. Будет гарантировано, что один из баллов будет максимум 3, а все - не менее 2.
Затем производительность каждого игрока будет отличаться от базовой производительности (одно значение будет изменяться на +2, другое на +1, затем +0, -1, а оставшееся значение будет варьироваться на -2).
Базовая производительность будет меняться от игры к игре.
Счет:
seer: 10.128 years
level_headed_trader: 8.196 years
introvert: 6.856 years
random_ando: 5.408 years
hoarder_trader: 4.12 years
ratio_trader: 3.532 years
scared_trader: 3.056 years
источник
(10 players + 4 my bots)*5
трейдеры. Игра настроена так, что игра не может продолжаться вечно. В конце концов все умрут.q
, были ли вы пропущены, и, если вы покупаете, предложение продавца и принятые продукты. Я надеюсь, что входные данные очевидны.Ответы:
провидец
Эта программа предсказывает будущее, и он выбирает сделки, которые увеличат его ожидаемую продолжительность жизни.
Это еще не полностью закончено, потому что он знает только, как покупать вещи, но не продавать вещи, так что ждите обновления в будущем. Несмотря на это, я верю, что он будет конкурентоспособен как есть.
Я запускаю эту программу так:
источник
$| = 1
в начале. Для вашей следующей ревизии, пожалуйста, сделайте это. Кроме того, ваш бот не очень хорошо. Чтобы посмотреть на результаты: pastebin.com/yaDprHPqУравновешенный Трейдер
Этот бот пытается сделать его количество как можно более равным
command.txt
leveller.py
источник
Напуганный трейдер
Этот трейдер избегает получать низкие цифры
command.txt
scared.py
источник
Hoarder Trader
Этот трейдер пытается получить как можно больше товаров.
command.txt
hoarder.py
источник
Соотношение трейдер
Этот бот предлагает продукты, соответствующие соотношению его производительности
command.txt
ratio.py
источник
Семья Фермеров - Ява
Пять семейных фермеров делают все возможное, чтобы охватить все производственные варианты тем, кто может извлечь максимальную выгоду из любой категории, работающей в этой категории. Однако после первоначальных заданий все члены семьи вычеркивают сами; они не вступают в сговор после первоначальных заданий. Я могу обойтись тем, чтобы они помогали друг другу во время торговли.
FamilyFarmers.java
command.txt
Может быть скомпилирован с
В папке bots / family_farmer должен быть еще один пустой файл family_billboard.txt.
источник
Интроверт - Ява
Этот бот настолько замкнутый, что он скорее умрет, чем поговорит с кем-либо в торговле, поэтому он немедленно покинет рынок, если он там есть. Однако он не хочет умирать, поэтому старается как можно дольше поддерживать свои запасы.
Introvert.java
command.txt
Компилировать с
Примечание. Я сделал это на обеденном перерыве, и на моем рабочем компьютере нет jdk или python, поэтому я вообще не смог его протестировать. Если это не работает, дайте мне знать, и я постараюсь это исправить.
источник
q
сообщение). Ваш модифицированный код находится на github (вместе с основным проектом)Случайная Андо
Каждый КОТ должен иметь случайного бота. Надеюсь, это закодировано, чтобы не заключать недействительных сделок (например, пытаться продать больше, чем есть на складе).
command.txt должен быть:
источник
bad argument #1 to 'randomseed' (number expected, got no value)
в строке 3