Jesteś zagranicznym handlowcem, mając nadzieję na zysk. Istnieje 5 dóbr, które ludzie chcą wymieniać: A
cenniki, B
wiosła, C
anary, D
przywileje i E
łuczniki. Poczynając od zimy, musisz zdecydować, co wyprodukować. Jesienią podróżujesz i spędzasz dni handlując dla zysku.
Rozgrywka
Zaczynasz grę, mając 10 każdego produktu w magazynie. Każdego roku zużyjesz 2 każdego produktu.
Na początku gry otrzymasz listę 5 produktów wraz z ilością, jaką będziesz w stanie wyprodukować każdego roku (np .:) 5-A,6-B,3-C,12-D,4-E
. Następnie zwrócisz litery od A do E decydujące o tym, co wyprodukować.
Następnie, jesienią, wprowadzisz na rynek swoje produkty (w tym te w magazynie). Masz 50 tur na wymianę.
Musisz zdecydować, czy chcesz P
zarekwirować, ellować S
, czy L
wystawić rynek. Kupujący zostaną następnie sparowani losowo ze sprzedawcami. Jeśli grupa ma dodatkowe, losowe dodatki przegapią tę turę. Jeżeli przedsiębiorca jest pomijany, otrzymają S
, w przeciwnym razie T
. Sprzedawca musi zdecydować, co chce sprzedać, i kwotę (np .:) 3-A
, a następnie to, co zaakceptuje (np .:) 5-B,2-D,1-E
(Wartości są dowolnymi z nie wszystkich ). Kupujący zostanie następnie poinformowany, jaki produkt sprzedaje sprzedawca, a następnie produkty, które sprzedawca weźmie za niego, i może wybrać produkt, za który będzie za niego sprzedawany (np. Za nic D
lub X
za nic).
Po zakończeniu wszystkich transakcji lub po wyjściu z rynku zużyjesz 2 każdego produktu, a rok zaczyna się od nowa. Jeśli masz mniej niż 2 z 1 produktu, umrzesz (i zdałeś Q
).
Twój wynik będzie liczbą ostatnich lat, a po 50 grach twoje wyniki zostaną uśrednione dla twojego całkowitego wyniku.
Opcjonalne ruchy
W dowolnym momencie możesz wrócić G
do zapytania o swoje towary
W dowolnym momencie możesz wrócić N
do zapytania o liczbę nowych produktów w ekwipunku (wyprodukowanych przez dowolnego gracza w ubiegłym roku, a nowe produkty zostaną wymienione przed starymi produktami)
W każdej chwili możesz wrócić T
po bieżącą frazę Turn: P
Ruce, Arket M
lub T
Rading
Podczas wymiany możesz zapytać I
o identyfikator unikalny dla gracza, z którym handlujesz.
Podczas handlu możesz wrócić M
do zapytania o liczbę osób handlujących
Jak to zakodować:
Możesz użyć dowolnego standardowego języka, który musi zawierać command.txt
komendę, aby uruchomić program.
Ogólny przebieg twojego programu powinien wynosić:
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
Mam tutaj program testowy . Aby z niego skorzystać, utwórz folder w folderze botów z nazwą bota. Dodaj command.txt
, swój program i wszystko, czego potrzebuje Twój program. Będę dodawał zgłoszenia, gdy tylko się pojawią. Jeśli nie chcesz instalować języków wymaganych do uruchomienia niektórych lub wszystkich z nich, wystarczy usunąć plik command.txt w folderze bota.
Wewnętrzne funkcjonowanie
Będzie 5 botów dla każdego przesłanego programu. Identyfikator będzie inny dla botów tego samego typu.
Nazwę ilość, którą dana osoba może wytworzyć danego produktu, nazywam produktywnością. Każdy produkt otrzyma podstawową produktywność, przy czym cała podstawowa produktywność zsumuje się do 30. Jedna z ocen będzie mieć najwyżej 3, a wszystkie będą co najmniej 2.
Następnie wydajność każdego gracza będzie różnić się od wydajności podstawowej (Jedna wartość będzie się różnić o +2, inna +1, a następnie +0, -1, a pozostała wartość będzie się różnić o -2).
Podstawowa wydajność zmieni się z gry na grę.
Wyniki:
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
źródło
(10 players + 4 my bots)*5
handlowcy. Gra jest skonfigurowana, więc gra nie może trwać wiecznie. W końcu wszyscy umrą.q
miały miejsce, jest początkowa produktywność, końcowy , czy zostałeś pominięty, a jeśli kupujesz, oferta sprzedawcy i zaakceptowane produkty. Mam nadzieję, że dane wejściowe są oczywiste.Odpowiedzi:
Jasnowidz
Ten program przewiduje przyszłość i wybiera transakcje, które zwiększą jego oczekiwaną długość życia.
To nie jest do końca ukończone, ponieważ on wie tylko, jak kupować, ale nie sprzedawać, więc spodziewaj się aktualizacji w przyszłości. Niezależnie od tego uważam, że będzie konkurencyjny w obecnej formie.
Uruchamiam ten program tak:
źródło
$| = 1
na początku. Zrób to dla następnej wersji. Ponadto twój bot nie radził sobie tak dobrze. Aby zobaczyć wyniki: pastebin.com/yaDprHPqTrader zorientowany na poziom
Ten bot próbuje wyrównać swoje ilości
polecenie.txt
leveller.py
źródło
Scared Trader
Ten inwestor unika uzyskiwania niskich liczb
polecenie.txt
scared.py
źródło
Hoarder Trader
Ten handlowiec stara się uzyskać jak najwięcej produktów.
polecenie.txt
hoarder.py
źródło
Ratio Trader
Ten bot oferuje produkty pasujące do jego wydajności
polecenie.txt
Ratio.py
źródło
Family Farmers - Java
Pięciu rolników rodzinnych dokłada wszelkich starań, aby objąć wszystkie opcje produkcji tym, którzy mogą maksymalnie wykorzystać każdą kategorię pracującą w tej kategorii. Jednak po początkowych zadaniach członkowie rodziny same się wybijają; nie zmawiają się po początkowych zadaniach. Mogę się przekonać, że będą sobie pomagać podczas handlu.
FamilyFarmers.java
polecenie.txt
Można go skompilować
W folderze bots / family_farmer powinien także znajdować się inny pusty plik, family_billboard.txt.
źródło
Introvert - Java
Ten bot jest tak zamknięty w sobie, że wolałby umrzeć niż rozmawiać z kimkolwiek w handlu, więc natychmiast opuszcza rynek, jeśli tam jest. Jednak nie chce umrzeć, więc stara się utrzymywać zapasy tak długo, jak to możliwe.
Introvert.java
polecenie.txt
Połącz z
Uwaga: Zrobiłem to podczas przerwy na lunch, a mój komputer nie ma jdk ani pytona, więc nie byłem w stanie go przetestować. Jeśli to nie zadziała, daj mi znać, a spróbuję to naprawić.
źródło
q
wiadomość). Zmodyfikowany kod znajduje się na github (z głównym projektem)Losowo Ando
Każdy KOTH powinien mieć losowego bota. Mam nadzieję, że jest zakodowany, aby nie zawierał nieważnych transakcji (takich jak próba sprzedaży więcej niż ma na stanie).
polecenie.txt powinno być:
źródło
bad argument #1 to 'randomseed' (number expected, got no value)
w linii 3