Halloween está casi aquí, la fiesta después de la cual la mayoría de las personas necesita dejar de comer una dieta hueca de azúcar.
Escribe un programa que tome un entero positivo. Si el número entero es menor que 31 (del 1 al 30), muestre este jack-o'-lantern ASCII-art, mirando a la derecha como si esperara Halloween:
_____I_____
| | | | | | |
| | |^| |^| |
| | | |^| | |
| | |VvVvV| |
|_|_|_|_|_|_|
Si la entrada es 31 (la fecha de octubre de Halloween está encendida), emita el mismo ASCII-o'-lantern, pero mirando a la izquierda:
_____I_____
| | | | | | |
| |^| |^| | |
| | |^| | | |
| |VvVvV| | |
|_|_|_|_|_|_|
Si la entrada es mayor que 31, produzca una linterna ASCII-o'-linterna de aspecto hinchado que probablemente comió demasiados dulces. Puede mirar hacia la izquierda o hacia la derecha ya que el mareo puede ser desorientador. Entonces salida:
_____I_____
| | | | | | |
| |o| |o| | |
| | |^| | | |
| |XXXXX| | |
|_|_|_|_|_|_|
o
_____I_____
| | | | | | |
| | |o| |o| |
| | | |^| | |
| | |XXXXX| |
|_|_|_|_|_|_|
El que tu prefieras. Incluso puede ser diferente para diferentes números por encima de 31.
El código más corto en bytes gana.
fuente
x^n>30
truco me confundió al principio, pero cuando descubrí lo que estaba sucediendo, lo robé descaradamente para mejorar mi respuesta. Como compensación, te doy un voto positivo por ello de todos modos.아희 (Aheui) , 914 bytes
Pruébalo aquí! (copie y pegue el código manualmente)
Puede que Aheui no sea para jugar al golf, pero de todos modos es divertido. :)
Salidas:
N = 10
N = 31
N = 40
fuente
Gelatina , 73 bytes
Programa completo
TryItOnline!
Podría ser posible campo de esto con la ayuda de rebote,
ŒḄ
.¿Cómo?
fuente
Rubí, 137 bytes
Puntos de la cara en y después del 31.
Sin golf en el programa de prueba
fuente
Carbón , 71 bytes
Nota : Este código no funciona en la confirmación más reciente a partir de la publicación, porque la indexación de cadenas está rota. Sin embargo, debería funcionar en esta versión desde el 25 de octubre. También se ejecuta con éxito en la versión actualmente en Try It Online .
Explicación
El carbón es un lenguaje diseñado para el arte ASCII. La salida se coloca en un lienzo, que se imprime al final del programa.
Preparar
Obtenga información y calcule los caracteres de la cara:
Dibujar la calabaza
Después de este ciclo, tenemos
Próximo:
Resultado:
Dibuja la cara
Dibujaremos la cara mirando hacia la derecha y la cambiaremos más adelante si es necesario.
Resultado (para entrada
31
):Reflexiona si es Halloween:
Salida final:
fuente
Pyth - 84 bytes
Compresión manual de base.
Test Suite .
fuente
PHP,
178176171 bytespodría ahorrar 5 bytes con saltos de línea físicos. Corre con
-r
.fuente
V , 97 bytes
Pruébalo en línea!
Estoy decepcionado de cuánto tiempo resultó esto. Es más complicado de lo habitual ya que V apenas puede manejar números, muchos bytes provienen de la creación de condicionales hacky. Publicaría una explicación detallada, pero me llevó mucho tiempo encontrarla, por lo que podría encontrarla más tarde. Aquí hay un hexdump:
FYI esto correrá muy lentamente. Tardará unos 10 segundos. Sé por qué sucede esto, y estoy buscando soluciones.
fuente
Pyth, 76 bytes
Pruébalo en línea.
No usa compresión. (Intenté usar algunos para una versión de la cadena de datos de la cara, pero terminó con la misma longitud).
fuente
Java 7, 237 bytes
Ungolfed y código de prueba:
Pruébalo aquí
Salida:
fuente
C ++,
222204194 bytes-18 bytes gracias a Kevin Cruijssen y -10 bytes para la parte superior explícita
Sin golf
fuente
&&
a&
y||
a|
? Como resumen, ¿ compila y ejecutausing S=std::string;S f(int n){char L[80],o=2*(n>30),i=-1;while(i++<80)L[i]=47<i&i<53?88:i%2?'|':i==20|i==24|i==36?n<32|i>35?94:'o':i-o%14?i-o<55?32:95:10;S t(5,95);return' '+t+'I'+t+' '+S(L+o,L+70+o);}
( 202 bytes )?i-o
es obligatorio, por lo que 204 bytes,PHP, 222 bytes
Salida
fuente
Groovy Script,
273265216202198 bytesVersión sin golf
Pruébalo aquí
Editar
Como mencionó Titus, puedo guardar algo de tamaño en
i < 32
lugar dei in 1..31
Editar 2
Se eliminaron todos los espacios posibles alrededor de los operadores ... Olvidé hacerlo al principio
Editar 3
Reescribió las condiciones ternarias para usar la variable guardada, reemplazada
;
por nuevas líneas, eliminó la definición explícita de la variableEditar 4
Como se ha mencionado Otávio, puedo ahorrar otros 4 bytes si me cambio a partir
| |${j ? ' |^| | ' : ' | |^| '}| |
de| | |${j ? '^| ' : ' |^'}| | |
fuente
i < 32
lugar dei in 1..31
?;
ambas tienen 1 carácter, sugiero que prefiera la nueva línea para facilitar la lectura. Y renunciar a los buenos hábitos de codificación, deshacerse de ellosint
ydef
.print
el primer ternario, guarde la condición en una variable como(j=i>30)
, luego en los siguientes 2 use solo enj
lugar de repetir la mismai>30
condición.JavaScript (ES6),
163125bytesAhora roba descaradamente el truco de @ ETHproduction para posicionar la cara. Codificación:
0
es un ojo,1
y2
son dientes,3
es el lado izquierdo,4
es el lado derecho y5
es el puente de la nariz.fuente
Ruby, 168 bytes
Probablemente lejos de ser óptimo. Requiere las bibliotecas
base64
yzlib
.Llamada como una función lambda.
fuente
Python 2, 167 bytes
fuente
C # 6,
223215 bytesint d=int.Parse(args[0]);var x="| | |\n| |";var s=d<31?" |^| |^| |\n| | | |^"+x+" |VvVvV":(d==31?"^| |^"+x+" |^| "+x+"VvVvV| ":"o| |o"+x+" |^| "+x+"XXXXX| ");Write(" _____I_____\n| | | | "+x+s+"| |\n|_|_|_|_|_|_|");
Programa completo sin golf:
fuente
Func<int, string>
que generalmente es la forma más corta de hacerlo.Write
lugar de declarar y definirs
.\r\n
lugar de solo\n
?