¡Bienvenido a Code Bots 2!
Has aprendido tu lección desde los últimos Code Bots. Intentaste encontrar más formas de ajustar más acciones en menos líneas, y ahora finalmente lo tienes. Vas a hacer un Code Bot basado en eventos.
Su bot debe constar de 24 líneas. Cada línea sigue uno de los dos formatos:
Condition:Action
o
Action
Su bot también tiene suficiente almacenamiento para almacenar 5 enteros nombrados a Através E. Un número entero puede almacenar valores de 0 a 23.
Cada turno, ejecutarás una línea C, a menos que una de las condiciones sea verdadera. Si es así, entonces Ccontendrá el número de línea del condicional que es verdadero, y luego se ejecutará esa línea. Al final de cada turno, Cse incrementará.
Existen las condiciones disponibles:
Startes cierto solo en el primer turno. Debe tener esto en su código exactamente una vezBotAt(N)es cierto si hay un bot en la ubicación definida por NEquals(A,B)es cierto si A es igual a B. Pueden ser de diferentes tipos, de ser así, no serán iguales.Modified(A)es cierto siAse copió durante el último turno.Adebe ser un nombre de variable, una línea o una condiciónAny(C1,C2,...)es cierto si alguna de las condiciones es verdaderaNone(C1,C2,...)es cierto si ninguna de las condiciones es verdaderaAll(C1,C2,...)es cierto si todas las condiciones son verdaderasNot(C)es verdadero si C es falso.CDebe ser una condición.
Las variables pueden estar en uno de los siguientes formatos. Los primeros 9 son numéricos y se pueden usar cuando se usa N en esta página.
A`B`C`D`E- Un número del 0 al 23
Thisdevolverá el número de línea en el que se encuentra actualmenteAdd(N1,N2,...)devolverá la suma de todos los valoresSub(N1,N2)devolverá N1 menos N2Mult(N1,N2,...)devolverá el producto de todos los valoresDiv(N1,N2)devolverá N1 dividido por N2Mod(N1,N2)devolverá N1 mod N2OVar(N)aceptará un nombre de variable y devolverá la variable del oponenteLine(N)devolverá la enésima línea en su códigoType(N)devolverá el enésimo tipo de línea en su código (los tipos son los nombres de las acciones)Cond(N)devolverá la condición en la enésima líneaCondType(N)devolverá el tipo de condición en la enésima línea (los tipos son los nombres de las condiciones)OLine(N)devolverá la enésima línea en el código de tu oponenteOType(N)devolverá el enésimo tipo de línea en el código de tu oponenteOCond(N)devolverá la condición en la enésima líneaOCondType(N)devolverá el tipo de condición en la enésima línea
Ay Bson para su uso personal, Cse usa para determinar qué línea ejecutar en su código y Dse usa como una dirección. Cada valor de se Drefiere a un par cuadrado y de dirección diferente. Eproduce un valor aleatorio cada vez. Dy Ese inicializará a un valor aleatorio, de lo contrario 0.
La dirección utilizada será [North,East,South,West][D%4]. Tu oponente es el bot en la casilla inmediata en esa dirección.
Hay 4 acciones disponibles para usted:
Movete moverá 1 casilla hacia adelante en laDdirección th. Si hay un bot allí, no te moverás.Copy(A,B)copiará la variableAaB.Bno puede ser un valor numérico, excepto para un nombre de variable.AyBno puede ser de diferentes tipos. Copiar una línea no copia la condición.Flagno hace nada. El bot con más banderas en su código obtendrá un punto. El bot con más puntos gana.If(C,L1,L2)llevará a cabo en la líneaL1, siCes cierto, de lo contrario lleva a caboL2.Ces una condiciónL1yL2debe ser líneas.
El panorama
Se colocarán 50 copias de cada bot en el mundo. Tu objetivo es colocar tu bandera en tantos bots como sea posible. Por cada bot que tenga más de su tipo de bandera que cualquier otro tipo de bandera, obtendrá un punto.
Los bots se colocarán de la siguiente manera:
B...B...B...B...
..B...B...B...B.
B...B...B...B...
Se ejecutarán 10 juegos y se promediarán los puntos en todos los juegos, determinando quién es el ganador.
Notas al margen
Si se aplican varias condiciones, la que sigue más immedately Startse ejecutará
Los bots se empaquetarán estrechamente, pero no comenzarás junto a otro bot. (Técnicamente tendrá el mismo formato que los últimos CodeBots)
Como este desafío no se publicó en el sandbox (para no darle una ventaja a nadie), me reservo el derecho de cambiar pequeños detalles para ser justos o capacidades adicionales. Además, si hay un error en el corredor de CodeBots, lo cambiaré, incluso si un bot dependía de ese error para su éxito. Estoy tratando de ser lo más justo posible.
Las Ifdeclaraciones recursivas no se ejecutarán
Si su bot tiene menos de 24 líneas, las líneas restantes se llenarán con Flag
Recuerde al copiar a su cuenta C, que Cse incrementa al final de su turno.
El intérprete de CodeBots se puede encontrar aquí . Incluye un archivo .jar para una fácil ejecución. Simplemente agregue su bot a la carpeta de bots
Puntuaciones
- 893.9 Borg
- 1.3 LazyLioness
- 0.9 Defensor
- 0.5 abanderado
- 0.4 CliqueBot
- 0.4 insidioso
- 0.3 atacante
- 0.3 Gard
- 0.3 SingleTarget
- 0.2 FreezeBot
- 0.2 Centinela
- 0.2 en espera
- 0.0 AntiInsidious
- 0.0 MoveBot
- 0.0 CliqueBorg
- 0.0 Calculadora
- 0.0 TestBot
- 0.0 imitador
ACTUALIZAR
Las líneas de código ahora se rotan cuando ves el código de tu oponente. Eso significa que la línea 1 de tu oponente puede ser la línea 14 (o cualquier línea). Un bot tendrá un desplazamiento fijo que compensará sus líneas en Xcantidad cuando sea visto por un oponente . La Cvariable del oponente también será compensada por la misma Xcantidad. Xno cambiará dentro del mismo juego, pero cambiará de un juego a otro.