Usted es un comerciante extranjero que espera obtener ganancias. Hay 5 bienes que las personas desean intercambiar: A
pricots, B
remos, C
anarios, D
affodils y E
arwigs. A partir del invierno, debes decidir qué producir. Luego, en el otoño, viaja y pasa sus días negociando para obtener ganancias.
Como se Juega
Comienzas el juego con 10 de cada producto almacenado. Cada año, consumirá 2 de cada producto.
Al comienzo del juego, recibirás una lista de 5 productos, junto con la cantidad que podrás producir cada año (ej 5-A,6-B,3-C,12-D,4-E
.:). Luego devolverá una letra de la A a la E para decidir qué producir.
Luego, en el otoño, traerá sus productos (incluidos los almacenados) al mercado. Tienes 50 turnos para comerciar.
Debe decidir si desea P
comprar, S
comprar o L
abandonar el mercado. Los compradores se emparejarán al azar con los vendedores. Si un grupo tiene extra, los extras aleatorios se perderán este turno. Si se salta un comerciante, que van a recibir S
, de lo contrario, T
. El vendedor debe decidir lo que quiere vender, y la cantidad (ej . 3-A
:), y luego lo que aceptaría (ej . 5-B,2-D,1-E
:) (Los valores son cualquiera o no todos ). Luego se le informará al comprador qué producto está vendiendo el vendedor, luego los productos que el vendedor tomará por él, y puede elegir un producto para intercambiarlo (por ejemplo: D
o X
por nada).
Después de que todas las transacciones hayan terminado, o después de que haya dejado el mercado, consumirá 2 de cada producto y el año comenzará nuevamente. Si tiene menos de 2 de cualquier 1 producto, morirá (y pasóQ
).
Su puntaje será el número de años que duró, y después de 50 juegos, sus puntajes se promediarán para su puntaje total.
Movimientos opcionales
En cualquier momento puedes regresar G
a consultar sus productos
En cualquier momento puedes regresar N
a consultar el número de productos nuevos en su inventario (producido por cualquier jugador en el último año, y los productos nuevos se comercializarán antes que los productos antiguos)
En cualquier momento puede regresar T
para la frase Turn actual: P
roduce, arket M
oT
arket rading
Durante una operación, puede consultar I
un identificador único para el jugador con el que está intercambiando.
Durante una operación, puede volver M
a consultar el número de personas que operan
Cómo codificarlo:
Puede usar cualquier lenguaje estándar y debe incluir uno command.txt
que sea el comando para ejecutar su programa.
El flujo general de su programa debe 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
Tengo un programa de prueba aquí . Para usarlo, crea una carpeta en la carpeta de bots con el nombre de tu bot. Agregue un command.txt
, su programa y cualquier otra cosa que su programa necesite. Estaré agregando presentaciones a medida que entren. Si no desea instalar los idiomas necesarios para ejecutar algunos o todos, solo necesita eliminar el command.txt en la carpeta del bot.
Trabajos internos
Habrá 5 bots por cada programa enviado. La identificación será diferente para los bots del mismo tipo.
Llamaré a la cantidad que una persona puede producir un producto dado la productividad. A cada producto se le dará una productividad básica, donde toda la productividad básica se sumará a 30. Se garantizará que uno de los puntajes sea como máximo 3, y todos serán al menos 2.
Luego, la productividad de cada jugador variará de la productividad base (un valor variará en +2, otro +1, luego +0, -1, y el valor restante variará en -2).
La productividad básica cambiará de un juego a otro.
Puntuaciones:
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
fuente
(10 players + 4 my bots)*5
comerciantes. El juego está configurado, por lo que es imposible que un juego continúe para siempre. Eventualmente todos morirán.q
, si se omitió y si está comprando, la oferta del vendedor y los productos aceptados. Espero que las entradas sean obvias.Respuestas:
Vidente
Este programa predice el futuro y elige las operaciones que aumentarán su vida útil esperada.
Esto no está completamente terminado, porque solo sabe cómo comprar cosas pero no venderlas, así que espere una actualización en el futuro. De todos modos, creo que será competitivo tal como está.
Ejecuto este programa así:
fuente
$| = 1
al principio. Para su próxima revisión, haga eso. Además, su bot no lo hizo tan bien. Para ver los resultados: pastebin.com/yaDprHPqComerciante de nivel
Este bot intenta hacer que sus cantidades sean lo más iguales posible
comando.txt
leveller.py
fuente
Comerciante asustado
Este comerciante evita obtener números bajos
comando.txt
miedo.py
fuente
Comerciante acaparador
Este comerciante intenta obtener tantos productos como sea posible.
comando.txt
hoarder.py
fuente
Ratio Trader
Este bot ofrece productos que coinciden con la relación de su productividad.
comando.txt
ratio.py
fuente
Agricultores familiares - Java
Los cinco agricultores familiares hacen todo lo posible para cubrir todas las opciones de producción con quien pueda sacar el máximo provecho de cualquier categoría que trabaje en esa categoría. Sin embargo, después de las tareas iniciales, todos los miembros de la familia se ponen en marcha por su cuenta; no se confabulan después de las tareas iniciales. Puedo lograr que se ayuden mutuamente mientras operan.
FamilyFarmers.java
comando.txt
Se puede compilar con
También debería haber otro archivo en blanco, family_billboard.txt, en la carpeta bots / family_farmer.
fuente
Introvertido - Java
Este bot es tan introvertido que preferiría morir antes que hablar con nadie en el comercio, por lo que inmediatamente sale del mercado si está allí. Sin embargo, no quiere morir, por lo que trata de mantener sus suministros el mayor tiempo posible.
Introvert.java
comando.txt
Compilar con
Nota: Hice esto en mi hora de almuerzo y mi computadora de trabajo no tiene el jdk o python, por lo que no he podido probarlo en absoluto. Si no funciona, avíseme e intentaré solucionarlo.
fuente
q
mensaje). Su código modificado está en github (con el proyecto principal)Ando aleatorio
Cada KOTH debe tener un bot aleatorio. Codificado, con suerte, para que no haga ofertas no válidas (como tratar de vender más de lo que tiene en stock).
command.txt debería ser:
fuente
bad argument #1 to 'randomseed' (number expected, got no value)
en la línea 3