Homem das cavernas louco. Outro homem das cavernas pega pau, mas pau era para mim. Luta do homem das cavernas !
Descrição
Homem das cavernas precisa de uma vara afiada para esfaquear outro homem das cavernas. Outro homem das cavernas também tenta esfaquear com uma vara afiada. O homem das cavernas pode afiar o bastão, cutucar com o bastão ou bloquear palitos enfiados.
Se um homem das cavernas cutucar outro homem das cavernas com uma vara afiada, outro homem das cavernas foge e me ganha. Mas se outro homem das cavernas bloquear com inteligência quando eu cutucar, nada acontecerá, a não ser que meu pau fique embotado e eu precise afiar novamente.
Homem das cavernas preguiçoso. Além disso, homem das cavernas burro. O homem das cavernas não sabe o que fazer, portanto, o homem das cavernas precisa de um programa de computador techno sofisticado para dizer ao homem das cavernas o que fazer.
Entrada
A entrada do seu programa será uma história dos eventos que aconteceram, onde S
significa afiar (ou seja, o homem das cavernas afiou o graveto), P
significa cutucar e B
significa bloquear. A entrada será um histórico de ambos os lados (você e o oponente); portanto, os movimentos do seu e do oponente serão separados por vírgula ( ,
).
Exemplo de entrada:
SPB,SBB
Isso significa que o jogador afiou o taco, depois cutucou, bloqueou e o oponente afiou, bloqueou e bloqueou novamente.
Você não receberá nenhuma entrada no turno 1.
Resultado
A saída é muito semelhante à entrada (porque o homem das cavernas não é muito inteligente). Seu programa deve ser exibido S
para nitidez, P
cutucada e B
bloco. Somente o primeiro caractere da saída será levado em consideração e qualquer outra entrada será tratada como um B
comando (bloco).
S
: afiarAo afiar, a nitidez do bastão do homem das cavernas aumenta em 1 e o bastão recebe 1 cutucada extra. Cada puxão reduz a nitidez do bastão em 1 e se a nitidez do bastão é 0, é muito chato para mexer. A nitidez começa em 0. Se a nitidez chegar a 5, o bastão é uma espada! (Ver abaixo.)
Se o oponente cutucar enquanto você está afiando (e tem nitidez> 0), o oponente vence!
P
: cutucarAo cutucar, a nitidez do bastão do homem das cavernas diminui em 1 e você cutuca o seu oponente! Se seu oponente está afiando, você ganha! Se o oponente estiver cutucando, seu taco bate no taco do oponente e os dois ficam mais opacos (por 1 "unidade de nitidez"). Se o oponente estiver bloqueando, nada acontece, exceto que seu taco fica mais tedioso.
Se você cutucar quando a nitidez do seu bastão for 5 ou maior, ele se tornará uma espada e você sempre vencerá! (A menos que seu oponente também tenha uma espada e também escolha
P
; nesse caso, ambos ficam mais opacos e podem reverter para paus se a nitidez cair abaixo de 5.)Você não pode cutucar com uma nitidez de 0. Se o fizer, nada acontecerá.
B
: quadraQuando você bloqueia, nada acontece quando seu oponente cutuca. Se seu oponente não estiver cutucando, o bloco não fará nada.
O bloqueio não protege contra uma espada, mesmo que você também tenha uma!
Regras e restrições
Regras adicionais são:
- Seu programa pode ler e gravar arquivos em sua própria pasta (sem roubo!) Se você quiser salvar dados, mas não puder acessar nada fora dele (e os homens das cavernas não têm conexão com a Internet no deserto).
- Nota importante sobre os arquivos : Se você salvar os arquivos, lembre-se de salvá-los no diretório
players/YourBotsName/somefile.foo
! O diretório de trabalho atual do seu programa não será do seu programa!
- Nota importante sobre os arquivos : Se você salvar os arquivos, lembre-se de salvá-los no diretório
- Homens das cavernas são justos: um programa não pode ter código específico para outro programa, e os programas não podem ajudar um ao outro. (Você pode ter vários programas, mas eles não podem interagir de forma alguma.)
- O juiz do homem das cavernas não é paciente. Se os homens das cavernas fizerem mais de 100 turnos cada um para decidir um vencedor, o juiz ficará entediado e os dois homens das cavernas perderão.
Se o seu programa infringir uma regra ou não seguir a especificação, o programa será desqualificado, removido playerlist.txt
e todos os duelos serão reiniciados desde o início. Se o seu programa for desqualificado, o líder do homem das cavernas (eu!) Comentará a postagem do programa e explicará o motivo. Se você não está infringindo nenhuma regra, seu programa será adicionado à tabela de classificação. (Se o seu programa não está na tabela de classificação, não há comentários explicativos na sua postagem e você postou seu programa antes da hora da "Última atualização" abaixo, informe ao líder do homem das cavernas! Talvez ele tenha esquecido.)
Na sua postagem, inclua:
- Um nome.
- Um comando shell para executar o seu programa (ex.
java MyBot.java
,ruby MyBot.rb
,python3 MyBot.py
, Etc.).- Nota: a entrada será anexada a isso como um argumento de linha de comando.
- Os homens das cavernas usam o Ubuntu 14.04, portanto, verifique se o seu código funciona (livremente) nele.
- Um número de versão, se o seu código funcionar de maneira diferente em versões diferentes do idioma escolhido.
- Seu código (obviamente).
- Como compilar o código, se necessário.
Código / teste do controlador, exemplo bot
O líder do homem das cavernas escreveu o código de controle em C ++ e o publicou em um repositório do Github . Você pode executar e testar seu programa lá.
Um programa muito, muito simples (1 linha!) Também é publicado nas respostas abaixo .
Pontuação e placar
Marcar é fácil. Qualquer que seja o homem das cavernas, ganha um ponto. O homem das cavernas com mais pontos após 3 duelos contra todos os outros homens das cavernas se torna o novo líder das cavernas!
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
(este placar foi gerado automaticamente)
Jogadores marcados com um *
lançaram algum tipo de erro ou exceção em algum momento; esses jogadores também têm um comentário em suas postagens.
Os jogadores que não puderam ser incluídos nos testes por qualquer motivo (estes jogadores terão um comentário sobre as suas mensagens explicando o problema): Monkey
, Elephant
, FacileFibonacci
, StudiousSylwester
.
Última atualização: 3 de agosto às 00:15 (UTC).