Uomo delle caverne pazzo. L'altro uomo delle caverne prende il bastone ma il bastone era per me. Lotta del cavernicolo !
Descrizione
Il cavernicolo ha bisogno di un bastone affilato per pugnalare un altro uomo delle caverne. Anche altri cavernicoli cercano di pugnalare con un bastone affilato. Il cavernicolo può affilare il bastone, colpire con il bastone o bloccare i bastoncini.
Se l'uomo delle caverne colpisce gli altri uomini delle caverne con un bastone affilato, altri uomini delle caverne scappano e io vado alla vittoria. Ma se un altro uomo delle caverne si blocca in modo intelligente quando frugando, non succede nulla tranne il mio bastone che diventa smussato e devo affilare di nuovo.
Uomo delle caverne pigro. Inoltre, uomo delle caverne stupido. Uomo delle caverne non sa cosa fare, quindi l'uomo delle caverne ha bisogno di un programma informatico techno per dire a l'uomo delle caverne cosa fare.
Ingresso
L'input del tuo programma sarà una storia degli eventi che sono accaduti, dove S
sta per affilare (cioè l'uomo delle caverne ha affilato il suo bastone), P
sta per colpire e B
sta per blocco. L'input sarà una cronologia di entrambe le parti (tu e l'avversario), quindi le tue mosse e quelle dell'avversario saranno separate da una virgola ( ,
).
Esempio di input:
SPB,SBB
Ciò significa che il giocatore ha affilato il suo bastone, poi ha colpito, quindi bloccato, e l'avversario ha affilato, quindi bloccato, quindi bloccato di nuovo.
Non riceverai alcun input al turno 1.
Produzione
L'output è molto simile all'input (perché l'uomo delle caverne non è molto intelligente). Il tuo programma dovrebbe produrre output S
per sharpen, P
poke e B
block. Verrà preso in considerazione solo il primo carattere dell'output e qualsiasi altro input verrà trattato come un B
comando (a blocchi).
S
: AffilareDurante l'affilatura, la nitidezza del bastone del cavernicolo aumenta di 1 e il bastone ottiene 1 colpo in più. Ogni colpo riduce la nitidezza dello stick di 1 e se la nitidezza dello stick è 0, è troppo noioso per colpire. La nitidezza inizia da 0. Se la nitidezza arriva a 5, lo stick è una spada! (Vedi sotto.)
Se l'avversario colpisce mentre stai affilando (e hanno una nitidezza> 0), l'avversario vince!
P
: pokeQuando colpisci, la nitidezza del bastone del cavernicolo scende di 1 e colpisci il tuo avversario! Se il tuo avversario si sta acuendo, vinci! Se l'avversario sta colpendo, il tuo bastone colpisce il bastone del tuo avversario ed entrambi diventano più opachi (di 1 "unità di nitidezza"). Se l'avversario sta bloccando, non succede nulla se non che il tuo bastone diventa più opaco.
Se colpisci quando la nitidezza del tuo bastone è 5 o maggiore, il tuo bastone diventa una spada e vinci sempre ! (A meno che anche il tuo avversario non abbia una spada e abbia anche scelto
P
; in quel caso, entrambi diventano più opachi e possono tornare ai bastoni se la loro nitidezza scende al di sotto di 5.)Non puoi colpire con una nitidezza di 0. Se lo fai, non succederà nulla.
B
: bloccoQuando blocchi, non succede nulla quando il tuo avversario colpisce. Se il tuo avversario non sta colpendo, il blocco non fa nulla.
Il blocco non protegge da una spada, anche se ne hai anche una!
Regole e vincoli
Regole aggiuntive sono:
- Il vostro programma in grado di leggere e scrivere file nella sua propria cartella (non rubare!) Se si desidera salvare i dati, ma non è possibile accedere a qualsiasi cosa al di fuori di esso (e uomini delle caverne non hanno connessione ad internet nel deserto).
- Nota importante sui file : se salvi i file, ricordati di salvarli nella directory
players/YourBotsName/somefile.foo
! La directory di lavoro corrente per il tuo programma non sarà quella del tuo programma!
- Nota importante sui file : se salvi i file, ricordati di salvarli nella directory
- I cavernicoli sono giusti: un programma non può avere un codice specifico per un altro programma e i programmi non possono aiutarsi a vicenda. (Potresti avere più programmi, ma non possono interagire tra loro in alcun modo.)
- Il giudice cavernicolo non è paziente. Se i cavernicoli effettuano più di 100 turni ciascuno per decidere un vincitore, il giudice si annoia ed entrambi i cavernicoli perdono.
Se il tuo programma infrange una regola o non segue le specifiche, il programma viene squalificato, rimosso playerlist.txt
e tutti i duelli ricominciano dall'inizio. Se il tuo programma viene squalificato, il leader del cavernicolo (io!) Commenterà il post del tuo programma e spiegherà perché. Se non stai infrangendo alcuna regola, il tuo programma verrà aggiunto alla classifica. (Se il tuo programma non è nella classifica, non ci sono commenti esplicativi sul tuo post e hai pubblicato il tuo programma prima del tempo "Ultimo aggiornamento" qui sotto, dillo al leader del cavernicolo! Forse l'ha dimenticato.)
Nel tuo post, ti preghiamo di includere:
- Un nome.
- Un comando di shell per eseguire il programma (es.
java MyBot.java
,ruby MyBot.rb
,python3 MyBot.py
, Etc.).- Nota: l'input verrà aggiunto a questo come argomento della riga di comando.
- I cavernicoli usano Ubuntu 14.04, quindi assicurati che il tuo codice funzioni (liberamente) su di esso.
- Un numero di versione, se il codice funziona in modo diverso su versioni diverse della lingua scelta.
- Il tuo codice (ovviamente).
- Come compilare il codice, se necessario.
Codice controller / test, esempio bot
Il leader del cavernicolo ha scritto il codice di controllo in C ++ e lo ha pubblicato su un repository Github . È possibile eseguire e testare il programma lì.
Un programma molto, molto semplice (1 riga!) È anche pubblicato nelle risposte di seguito .
Punteggio e classifica
Il punteggio è facile. Qualunque vince l'uomo delle caverne ottiene un punto. Il cavernicolo con il maggior numero di punti dopo 3 duelli contro ogni altro uomo delle caverne diventa il nuovo leader del cavernicolo!
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
(questa classifica è stata generata automaticamente per magia)
I giocatori segnati con un *
tiro hanno lanciato qualche tipo di errore o eccezione ad un certo punto; questi giocatori hanno anche un commento sui loro post.
I giocatori che non hanno potuto essere inclusi nelle prove per qualsiasi motivo (questi giocatori avranno un commento sul loro posti che spiegano il problema): Monkey
, Elephant
, FacileFibonacci
, StudiousSylwester
.
Ultimo aggiornamento: 3 ago 00:15 (UTC).