Você é um comerciante estrangeiro, na esperança de obter lucro. Existem cinco produtos que as pessoas desejam comercializar: A
pricots, B
remos, C
anários, D
afodils e E
arwigs. A partir do inverno, você precisa decidir o que produzir. Então, no outono, você viaja e passa seus dias negociando com lucro.
Jogabilidade
Você inicia o jogo com 10 de cada produto em armazenamento. A cada ano, você consumirá 2 de cada produto.
No início do jogo, você recebe uma lista de 5 produtos, juntamente com a quantidade que poderá produzir a cada ano (ex:) 5-A,6-B,3-C,12-D,4-E
. Você retornará uma letra A a E decidindo o que produzir.
Então, no outono, você levará seus produtos (incluindo aqueles armazenados) ao mercado. Você tem 50 turnos para negociar.
Você deve decidir se deseja P
comprar, vender S
ou L
vender o mercado. Os compradores serão emparelhados aleatoriamente com os vendedores. Se um grupo tiver extra, os extras aleatórios perderão este turno. Se um comerciante for ignorado, ele receberá S
, caso contrário T
,. O vendedor deve decidir o que ele quer vender e o valor (ex .:) 3-A
e, em seguida, o que ele aceitaria (ex:) 5-B,2-D,1-E
(os valores são alguns de não todos ). O comprador será informado sobre o produto que o vendedor está vendendo, os produtos que o vendedor levará para ele e ele poderá escolher um produto para negociá-lo (ex: D
ou X
por nada).
Depois que todas as negociações terminarem, ou depois de sair do mercado, você consumirá 2 de cada produto e o ano começará novamente. Se você tiver menos de 2 de qualquer 1 produto, morrerá (e será aprovado Q
).
Sua pontuação será o número de anos que você durou e, após 50 jogos, sua pontuação será calculada para sua pontuação total.
Movimentos opcionais
A qualquer momento, você pode retornar G
para consultar suas mercadorias
A qualquer momento, você pode retornar N
para consultar o número de novos produtos em seu inventário (produzido por qualquer jogador no ano passado e novos produtos serão negociados antes dos produtos antigos)
A qualquer momento, você pode retornar T
para a frase de curva atual: P
roduce, M
arket ou T
rading
Durante uma negociação, você pode consultar I
um identificador exclusivo para o jogador com quem está negociando.
Durante uma negociação, você pode retornar M
para consultar o número de pessoas que negociam
Como codificá-lo:
Você pode usar qualquer idioma padrão e deve incluir um command.txt
comando para executar seu programa.
O fluxo geral do seu programa deve ser:
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
Eu tenho um programa de teste aqui . Para usá-lo, crie uma pasta na pasta bots com o nome do seu bot. Adicione a command.txt
, seu programa e qualquer outra coisa que seu programa precise. Estarei adicionando envios à medida que eles chegarem. Se você não deseja instalar os idiomas necessários para executar alguns ou todos eles, basta excluir o command.txt na pasta do bot.
Trabalhos internos
Haverá 5 bots para cada programa enviado. O ID será diferente para bots do mesmo tipo.
Vou chamar a quantidade que uma pessoa pode produzir de um determinado produto de produtividade. Cada produto terá uma produtividade básica, onde toda a produtividade básica será de até 30. Uma das pontuações será garantida em no máximo 3 e todas serão no mínimo 2.
Então, a produtividade de cada jogador varia em relação à produtividade base (um valor varia em +2, outro +1, depois em +0, -1 e o valor restante varia em -2).
A produtividade básica mudará de jogo para jogo.
Pontuações:
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
fonte
(10 players + 4 my bots)*5
comerciantes. O jogo está configurado, por isso é impossível que um jogo continue para sempre. Eventualmente todo mundo vai morrer.q
, se você foi ignorado e se está comprando, a oferta do vendedor e os produtos aceitos. Espero que as informações sejam óbvias.Respostas:
Vidente
Este programa prevê o futuro e ele escolhe os negócios que aumentarão sua expectativa de vida.
Isso não está completamente concluído, porque ele sabe apenas comprar, mas não vender, portanto, espere uma atualização no futuro. Independentemente disso, acredito que ele será competitivo como está.
Eu executo este programa da seguinte forma:
fonte
$| = 1
no começo. Para sua próxima revisão, faça isso. Além disso, seu bot não se saiu tão bem. Para ver os resultados: pastebin.com/yaDprHPqOperador nivelado
Este bot tenta tornar suas quantidades o mais iguais possível
command.txt
leveller.py
fonte
Trader assustado
Este comerciante evita obter números baixos
command.txt
scared.py
fonte
Hoarder Trader
Esse profissional tenta obter o maior número possível de produtos.
command.txt
hoarder.py
fonte
Trader Ratio
Este bot oferece produtos que correspondem à proporção de sua produtividade
command.txt
ratio.py
fonte
Fazendeiros da família - Java
Os cinco agricultores familiares fazem o possível para cobrir todas as opções de produção com quem puder tirar o máximo proveito de qualquer categoria que trabalhe nessa categoria. No entanto, após as designações iniciais, todos os membros da família atacam por conta própria; eles não conspiram após as atribuições iniciais. Eu posso ter a oportunidade de ajudá-los enquanto negociamos.
FamilyFarmers.java
command.txt
Pode ser compilado com
Também deve haver outro arquivo em branco, family_billboard.txt, na pasta bots / family_farmer.
fonte
Introvertido - Java
Esse bot é tão introvertido que prefere morrer a falar com alguém no mercado, por isso sai imediatamente do mercado se estiver lá. No entanto, como ele não quer morrer, tenta manter seus suprimentos o maior tempo possível.
Introvert.java
command.txt
Ajuntar com
Nota: Fiz isso no meu horário de almoço e meu computador de trabalho não possui o jdk ou python, portanto não pude testá-lo. Se não funcionar, avise-me e tentarei corrigi-lo.
fonte
q
mensagem). Seu código modificado está no github (com o projeto principal)Random Ando
Todo KOTH deve ter um bot aleatório. Codificado, esperançosamente, para que não faça transações inválidas (como tentar vender mais do que aquilo que tem em estoque).
command.txt deve ser:
fonte
bad argument #1 to 'randomseed' (number expected, got no value)
na linha 3