Bienvenido, valiente golfista de código! ¡Hoy estarás en medio de una gran batalla entre un duende y un elfo!
goblin attacks elf!
elf dodges!
elf attacks goblin!
elf hits goblin for 13 damage!
goblin has 37 health left.
goblin attacks elf!
goblin hits elf for 1 damage!
elf has 49 health left.
elf attacks goblin!
elf hits goblin for 19 damage!
goblin has 18 health left.
goblin attacks elf!
goblin hits elf for 26 damage!
elf has 23 health left.
elf attacks goblin!
elf hits goblin for 20 damage!
goblin has been slain!
El reto
Tu desafío es simular una batalla, como la anterior. Recibirá información de esta forma:
creatureName health strength defense accuracy agility
Por ejemplo, la batalla entre el duende y el elfo sería:
goblin 50 40 35 3 2 elf 50 35 30 4 5
La primera y la segunda criaturas alternarán los ataques.
- Imprimir 'criaturaName ataca a otroCreatureName!'
- Comprueba si la criatura esquiva. La criatura esquivará un ataque si (su agilidad multiplicada por rand () dividida entre 2) es mayor que (la precisión del atacante multiplicada por rand ()).
- Si la criatura esquiva, imprime 'criatura Nombre esquiva!'
- De lo contrario, calcule el daño infligido restando (la fuerza del atacante multiplicada por rand ()) y (la defensa del defensor multiplica por rand () dividido por 2). El daño mínimo es 1. Imprime 'criaturaName golpea a otroCreatureName por (x) daño!' A continuación, imprima 'criaturaNombre tiene (x) salud restante'. a menos que la salud de la criatura sea 0 o menos, en cuyo caso ...
- Si la salud de la criatura es 0 o menos, imprime '¡El nombre de la criatura ha sido asesinado!' y terminar el programa.
Reglas
- El código más corto gana.
- No imprima literalmente 'creatureName', sino reemplácelo con el nombre de la criatura. No imprima '(x) daños' o '(x) salud;' reemplazarlos con la cantidad real. (Tengo que especificar esto porque algunas personas son muy creativas con la flexión de las reglas.: P)
code-golf
simulation
Pomo de la puerta
fuente
fuente
goblin 50 40 18 3 2 elf 50 35 15 4 5
?Respuestas:
APL (
249244242)Esta vez, el estilo de procedimiento (por lo menos en Dyalog) debe pegar esto en una ventana del editor. Lo nombré
G
(la primera línea es el nombre, lo he incluido porque así es como aparece en la ventana del editor, por lo que probablemente debería contarse).(editar: GOTO numéricos usados en lugar de etiquetas de línea. Resulta que (al menos en Dyalog) toda la definición de una etiqueta
X:
se estableceX
en el número de línea, por lo que también podría usar los números directamente).fuente
Perl, 254 + 1
Corre con
perl -nM5.010
(operl -nE '<code>'
). Por meta , el-n
interruptor cuenta como un personaje adicional. No hay trucos de golf sofisticados en este código, excepto tal vez el uso de$=
la variable de daño para guardar unint
.Editar: Con suerte, el cálculo del daño es correcto ahora.
fuente
CoffeeScript
454432Pase una cadena
b
para obtener los resultados. Pensé que sería más divertido tener una salida gráfica animada, así que armé una demostración. Simplemente cambie el cuadro de entrada para cambiar las estadísticas y los nombres. Las imágenes de jpg.to, que es la API no oficial de google-images.Super Action Demo
Entradas recomendadas (sugiera las suyas):
fuente
voldemort 9999
jaja: D10e42
, pero su navegador puede congelarse ...Rubí,
292264Mi primer código de entrada de golf; cómo esa definición de método analiza está más allá de mí :)
¿Está bien leer la entrada de los parámetros de la línea de comandos (por ejemplo
ruby battle.rb goblin 50 40 35 3 2 elf 50 35 30 4 5
)?Ideone run
fuente
JavaScript;
347341333Como siempre hago, comenzaré con mi propia solución:
EDITAR: aparentemente asignando
console.log
a una variable saltos en algunos navegadores, así que aquí está el mismo código con una declaración de función en su lugar:Estaba pensando en cambiarlo
alert
, pero eso sería malo: Pfuente
Uncaught TypeError: Illegal invocation
pora=console.log
. ¿no tendrías que vincular elconsole
objeto como contexto, por ejemploa=console.log.bind(console)
?alert
, pero sería muy molesto: PPython: 393
Apreté un poco más, si tuviera 3 probablemente podría
print = p
acortarlo un poco más, pero no creo que quede mucho en este.393:
399:
Creo que la gente se está saltando que si tiene una buena condición en el circuito, no necesita verificar si el objetivo está por debajo de la salud.
fuente
JavaScript:
340306339:
306:
Salida de muestra:
Editar notas: +1 personaje, me perdí el "!" después de "esquivar"
Ah, y olvidé poner una salida después de "Salida de muestra"
Cambié el encabezado a JavaScript, como sugiere @tbodt
fuente
R: 387 caracteres
O completamente desarrollado, con muescas y comentarios, para aclarar las cosas:
fuente
C # -
464453 caracteresDespués de un par de noches en esto, parece que no puedo acercarme a las otras entradas (no es tan sorprendente para C #). Todavía hay margen de mejora, sospecho. No hay trucos especialmente ingeniosos.
Comentado:
fuente
Pitón 3, 314
fuente