Hombre de las cavernas loco. Otro hombre de las cavernas toma palo pero el palo fue para mí. Lucha de hombre de las cavernas !
Descripción
El hombre de las cavernas necesita un palo afilado para apuñalar a otro hombre de las cavernas. Otros hombres de las cavernas también intentan apuñalar con un palo afilado. El hombre de las cavernas puede afilar el palo, pinchar con el palo o bloquear los palos.
Si el hombre de las cavernas golpea a otro hombre de las cavernas con un palo afilado, otro hombre de las cavernas se escapará y yo venceré. Pero si otro hombre de las cavernas bloquea inteligentemente cuando estoy hurgando, no pasa nada, excepto que mi palo se vuelve contundente y necesito afilar nuevamente.
Hombre de las cavernas vago. Además, hombre de las cavernas tonto. El hombre de las cavernas no sabe qué hacer, por lo que el hombre de las cavernas necesita un sofisticado programa de computadora tecno para decirle al hombre de las cavernas qué hacer.
Entrada
La entrada de su programa será una historia de los eventos que han sucedido, donde S
significa agudizar (es decir, el hombre de las cavernas afiló su bastón), P
representa un golpe y B
representa un bloque. La entrada será un historial de ambos lados (usted y el oponente), por lo que sus movimientos y los del oponente se separarán con una coma ( ,
).
Entrada de ejemplo:
SPB,SBB
Esto significa que el jugador afiló su palo, luego golpeó, bloqueó y el oponente afiló, bloqueó y bloqueó nuevamente.
No recibirá ninguna entrada en el turno 1.
Salida
La salida es muy similar a la entrada (porque el hombre de las cavernas no es muy inteligente). Su programa debe salir S
para enfocar, P
para empujar y B
para bloquear. Solo se tendrá en cuenta el primer carácter de salida, y cualquier otra entrada se tratará como un B
comando (bloque).
S
: afilarAl afilar, la agudeza del palo del hombre de las cavernas aumenta en 1 y el palo recibe 1 empuje adicional. Cada golpe reduce la nitidez del palo en 1, y si la nitidez del palo es 0, es demasiado aburrido para tocar. La nitidez comienza en 0. Si la nitidez llega a 5, ¡el palo es una espada! (Vea abajo.)
Si el oponente golpea mientras usted está afilando (y tiene una nitidez> 0), ¡el oponente gana!
P
: empujarAl pinchar, la agudeza del palo del hombre de las cavernas se reduce en 1 y golpeas a tu oponente. Si tu oponente está afilando, ¡tú ganas! Si el oponente está empujando, tu palo golpea el palo de tu oponente y ambos se embotan (por 1 "unidad de nitidez"). Si el oponente está bloqueando, no pasa nada excepto que tu palo se vuelve más opaco.
Si tocas cuando la agudeza de tu palo es 5 o mayor, ¡tu palo se convierte en una espada y siempre ganas! (A menos que tu oponente también tenga una espada y también elija
P
; en ese caso, ambos se vuelven más opacos y pueden volver a palos si su agudeza cae por debajo de 5).No puedes empujar con una nitidez de 0. Si lo haces, no pasará nada.
B
: bloqueCuando bloqueas, no pasa nada cuando tu oponente golpea. Si tu oponente no está hurgando, el bloqueo no hace nada.
¡Bloquear no protege contra una espada, incluso si también tienes una!
Reglas y restricciones
Las reglas adicionales son:
- Su programa puede leer y escribir archivos en su propia carpeta (¡sin robar!) Si desea guardar datos, pero no puede acceder a nada fuera de él (y los hombres de las cavernas no tienen conexión a Internet en el desierto).
- Nota importante sobre los archivos : si guarda archivos, recuerde guardarlos en el directorio
players/YourBotsName/somefile.foo
. ¡El directorio de trabajo actual para su programa no será el de su programa!
- Nota importante sobre los archivos : si guarda archivos, recuerde guardarlos en el directorio
- Los hombres de las cavernas son justos: un programa no puede tener un código específico para otro programa, y los programas no pueden ayudarse entre sí. (Es posible que tenga varios programas, pero no pueden interactuar entre sí de ninguna manera).
- El juez cavernícola no es paciente. Si los hombres de las cavernas toman más de 100 turnos cada uno para decidir un ganador, el juez se aburre y ambos hombres de las cavernas pierden.
Si su programa infringe una regla o no sigue la especificación, el programa se descalifica, se elimina playerlist.txt
y todos los duelos se reinician desde el principio. Si su programa es descalificado, el líder del hombre de las cavernas (¡yo!) Comentará la publicación de su programa y explicará por qué. Si no está rompiendo ninguna regla, su programa se agregará a la tabla de clasificación. (Si su programa no está en la tabla de clasificación, no hay ningún comentario explicativo en su publicación, y publicó su programa antes de la hora de "Última actualización" a continuación, ¡dígaselo al líder del hombre de las cavernas! ¡Quizás lo olvidó!)
En su publicación, incluya:
- Un nombre.
- Un comando shell para ejecutar el programa (ej.
java MyBot.java
,ruby MyBot.rb
,python3 MyBot.py
, Etc.).- Nota: la entrada se agregará a esto como un argumento de línea de comando.
- Los hombres de las cavernas usan Ubuntu 14.04, así que asegúrese de que su código funcione (libremente) en él.
- Un número de versión, si su código funciona de manera diferente en diferentes versiones de su idioma elegido.
- Tu código (obviamente).
- Cómo compilar el código, si es necesario.
Código / prueba del controlador, ejemplo bot
El líder del hombre de las cavernas escribió el código de control en C ++ y lo publicó en un repositorio de Github . Puede ejecutar y probar su programa allí.
Un programa muy, muy simple (¡1 línea!) También se publica en las respuestas a continuación .
Puntuación y tabla de clasificación
Anotar es fácil. El hombre de las cavernas que gana obtiene un punto. ¡El hombre de las cavernas con más puntos después de 3 duelos contra cualquier otro hombre de las cavernas se convierte en el nuevo líder del hombre de las 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
(esta tabla de clasificación se generó automáticamente por arte de magia)
Los jugadores marcados con un *
lanzamiento arrojaron algún tipo de error o excepción en algún momento; Estos jugadores también tienen un comentario en sus publicaciones.
Los jugadores que no pudieron ser incluidos en las pruebas por cualquier motivo (estos jugadores tendrán un comentario en sus mensajes que explican el problema): Monkey
, Elephant
, FacileFibonacci
, StudiousSylwester
.
Última actualización: 3 de agosto 00:15 (UTC).