Jaskiniowiec. Inny jaskiniowiec bierze kij, ale kij był dla mnie. Walka jaskiniowców !
Opis
Jaskiniowiec potrzebuje ostrego patyka, aby dźgnąć innego jaskiniowca. Inny jaskiniowiec również próbuje dźgnąć ostrym kijem. Jaskiniowiec może wyostrzyć kij, szturchać kijem lub blokować kijki.
Jeśli jaskiniowiec wbije drugiego jaskiniowca ostrym kijem, inny jaskiniowiec ucieknie, a ja zwycięstwo. Ale jeśli inny jaskiniowiec sprytnie blokuje się podczas szturchania, nic się nie dzieje, z wyjątkiem tego, że mój kij staje się tępy i muszę ponownie wyostrzyć.
Jaskiniowiec leniwy. Poza tym jaskiniowiec głupi. Jaskiniowiec nie wie, co robić, więc jaskiniowiec potrzebuje wymyślnego programu komputerowego techno, aby powiedzieć jaskiniowcowi, co ma robić.
Wejście
Wkład twojego programu będzie historią wydarzeń, które miały miejsce, w których S
oznacza ostrzenie (tj. Jaskiniowiec zaostrzył swój kij), P
oznacza poke i B
blok. Dane wejściowe będą historią obu stron (ciebie i przeciwnika), więc ruchy twojego i przeciwnika zostaną oddzielone przecinkiem ( ,
).
Przykładowe dane wejściowe:
SPB,SBB
Oznacza to, że gracz wyostrzył swój kij, a następnie szturchnął, a następnie zablokował, a przeciwnik wyostrzył, a następnie zablokował, a następnie ponownie zablokował.
Nie otrzymasz żadnych danych wejściowych w pierwszej turze.
Wynik
Wyjście jest bardzo podobne do wejścia (ponieważ jaskiniowiec nie jest zbyt inteligentny). Twój program powinien wyświetlać dane w S
celu wyostrzenia, P
poke i B
bloku. Uwzględniany będzie tylko pierwszy znak wyniku, a wszelkie inne dane wejściowe będą traktowane jako B
polecenie (blok).
S
: wyostrzyćPodczas ostrzenia ostrość kija jaskiniowca wzrasta o 1, a kij dostaje 1 dodatkowe szturchnięcie. Każde dźgnięcie zmniejsza ostrość kija o 1, a jeśli ostrość kija wynosi 0, jest zbyt nudny, aby go szturchać. Ostrość zaczyna się od 0. Jeśli ostrość osiągnie 5, kij jest mieczem! (Patrz poniżej.)
Jeśli przeciwnik szturchnie podczas ostrzenia (i ma ostrość> 0), przeciwnik wygrywa!
P
: szturchaćPodczas szturchania ostrość kija jaskiniowca spada o 1, a ty szturchasz przeciwnika! Jeśli twój przeciwnik ostrzy, wygrywasz! Jeśli przeciwnik szturcha, twój kij uderza w kij przeciwnika i oba stają się matowniejsze (o 1 „jednostkę ostrości”). Jeśli przeciwnik blokuje, nic się nie dzieje poza tym, że twój kij staje się matowy.
Jeśli szturchasz, gdy ostrość twojego kija wynosi 5 lub więcej, twój kij staje się mieczem i zawsze wygrywasz! (Chyba, że twój przeciwnik również ma miecz i również wybrał
P
; w takim przypadku oboje stają się bardziej tępi i mogą powrócić do drążków, jeśli ich ostrość spadnie poniżej 5).Nie możesz szturchać z ostrością 0. Jeśli to zrobisz, nic się nie wydarzy.
B
: blokKiedy blokujesz, nic się nie dzieje, gdy przeciwnik szturcha. Jeśli twój przeciwnik nie szturcha, blok nic nie robi.
Blokowanie nie chroni przed mieczem, nawet jeśli go masz!
Zasady i ograniczenia
Dodatkowe zasady to:
- Twój program może odczytywać i zapisywać pliki we własnym folderze (bez kradzieży!), Jeśli chcesz zapisać dane, ale nie możesz uzyskać dostępu do niczego poza nim (a jaskiniowcy nie mają połączenia z Internetem na pustkowiu).
- Ważna uwaga na temat plików : jeśli zapisujesz pliki, pamiętaj, aby zapisać je w katalogu
players/YourBotsName/somefile.foo
! Bieżący katalog roboczy dla Twojego programu nie będzie należeć do Twojego programu!
- Ważna uwaga na temat plików : jeśli zapisujesz pliki, pamiętaj, aby zapisać je w katalogu
- Jaskiniowcy są uczciwi: jeden program nie może mieć kodu specyficznego dla innego programu, a programy nie mogą sobie nawzajem pomagać. (Możesz mieć wiele programów, ale nie mogą one ze sobą w żaden sposób współdziałać).
- Sędzia jaskiniowca nie jest cierpliwy. Jeśli jaskiniowcy wykonają więcej niż 100 tur w celu wyłonienia zwycięzcy, sędzia się nudzi i obaj jaskiniowcy przegrywają.
Jeśli Twój program złamie regułę lub nie będzie zgodny ze specyfikacją, zostanie zdyskwalifikowany, usunięty playerlist.txt
i wszystkie pojedynki rozpoczną się od początku. Jeśli twój program zostanie zdyskwalifikowany, lider jaskiniowca (ja!) Skomentuje post twojego programu i wyjaśni dlaczego. Jeśli nie łamiesz żadnych reguł, Twój program zostanie dodany do tablicy wyników. (Jeśli twojego programu nie ma na tablicy wyników, nie ma komentarza wyjaśniającego do twojego postu, a opublikowałeś swój program przed czasem „Ostatnia aktualizacja” poniżej, powiedz liderowi jaskiniowców! Może on zapomniał.)
W swoim poście podaj:
- Imię.
- Polecenie powłoki, aby uruchomić program (np.
java MyBot.java
,ruby MyBot.rb
,python3 MyBot.py
, Itd.).- Uwaga: dane wejściowe zostaną do tego dołączone jako argument wiersza poleceń.
- Jaskiniowcy używają Ubuntu 14.04, więc upewnij się, że kod działa (swobodnie) na nim.
- Numer wersji, jeśli kod działa inaczej w różnych wersjach wybranego języka.
- Twój kod (oczywiście).
- Jak skompilować kod, jeśli to konieczne.
Kod kontrolera / testowanie, przykładowy bot
Lider jaskiniowca napisał kod kontrolny w C ++ i opublikował go na repozytorium Github . Możesz tam uruchomić i przetestować swój program.
Bardzo, bardzo prosty program (1 linia!) Jest również zamieszczony w odpowiedziach poniżej .
Punktacja i tabela wyników
Punktacja jest łatwa. Zwycięzca jaskiniowca dostaje punkt. Jaskiniowiec z największą liczbą punktów po 3 pojedynkach z każdym innym jaskiniowcem zostaje nowym przywódcą jaskiniowców!
150 Watson
147 SpeculativeSylwester
146 Gruntt
141 BashMagnon
126 ChargerMan
125 PrisonRules
124 ViceLeader
122 MultiMarkov
122 CaveDoctor
120 RegExMan
120 Hodor
117 FancyTechnoAlgorithm
116 Semipatient
113 Watcher
108 BobCaves
105 MinimaxMan
104 Oracle
102 MaybeMarkov
97 Nash
95 Sicillian
95 Feint
95 Basilisk
94 SharpMan
93 Darwin
91 Nigel
91 JavaMan
88 Entertainer
88 CarefulBot
85 CaveMonkey
84 SSBBP
82 SirPokealot
79 MasterPoker
77 Unpredictable
76 IllogicalCaveman
75 SharpenBlockPoke
75 HuddleWolfWithStick
72 WoodenShield
68 PokeBackBot
68 PatientBlacksmith
66 PatientWolf
58 MonteCarloMan
58 BlindFury
56 BinaryCaveman
55 PokeBot
55 CavekidBlocks
53 Swordmaster
53 Blocker
52 NakedEarlyNerd
52 ModestCaveman
50 LatePokeBot
40 Trickster
39 SwordLover
38 ForeignCaveman
36 Swordsmith *
28 Touche
27 WantASword
27 FoolMeOnce
24 PeriodicalCavemanCicada
11 Aichmophobic
(ta tabela liderów została wygenerowana automatycznie)
Gracze oznaczeni *
w pewnym momencie rzucili jakiś błąd lub wyjątek; ci gracze mają również komentarz do swoich postów.
Gracze, którzy nie mogą być zawarte w testach z jakiegokolwiek powodu (ci gracze będą mieć komentarz na swoich stanowiskach wyjaśniając problem): Monkey
, Elephant
, FacileFibonacci
, StudiousSylwester
.
Ostatnia aktualizacja: 3 sierpnia 00:15 (UTC).