Problema
entrada dada a,b,c
donde a,b,c
son positivos enteros pares
y a > b > c
Haga una caja de cualquier personaje permitido con dimensiones a x a
Centra un cuadro de un personaje permitido diferente con dimensiones b x b
dentro del anterior
Centra una caja de otro personaje permitido diferente con dimensiones c x c
dentro del anterior
Los caracteres permitidos son caracteres ASCII están en [a-zA-z0-9!@#$%^&*()+,./<>?:";=_-+]
Entrada a=6, b=4, c=2
######
#****#
#*@@*#
#*@@*#
#****#
######
Entrada a=8, b=6, c=2
########
#******#
#******#
#**@@**#
#**@@**#
#******#
#******#
########
Entrada a=12, b=6, c=2
############
############
############
###******###
###******###
###**@@**###
###**@@**###
###******###
###******###
############
############
############
Reglas
- El código más corto gana
- Recuerde que puede elegir qué carácter imprimir dentro del rango dado
- Nuevas líneas finales aceptadas
- Espacio en blanco al final aceptado
- las funciones pueden devolver cadenas con líneas nuevas, matriz de cadenas o imprimirlas
Respuestas:
Carbón , 14 bytes
Pruébalo en línea! El enlace es a la versión detallada del código.
fuente
Jalea ,
2019 bytes-1 byte usando el rápido
`
para evitar un enlace, como lo sugiere Erik the Outgolfer.Un programa completo que toma una lista
[a,b,c]
imprimiendo las cajas usandoa:2 b:1 c:0
... de hecho, tal como está, funcionará para hasta 10 cajas, donde está la caja más interna
0
( por ejemplo ).Pruébalo en línea!
¿Cómo?
fuente
Python 2,
107103bytesPrograma completo, imprime cajas con
a=2
,b=1
,c=0
Respuesta ligeramente peor, con comprensión de la lista (104 bytes):
fuente
C #,
274232 bytesTerrible incluso para C #, por lo que definitivamente se puede jugar al golf, pero mi mente se ha quedado en blanco.
Versión completa / formateada:
fuente
j + m <= n + c
puedes llegar a sern + c > j + m
i + m >= n
an < i + m
i+m
4 veces, por lo que puede agregarlo a una variable en sufor
para guardar algoi
de forma aislada, solo se inicializai=m
y comparai<b+m
; o ... simplemente usei
, initi=0
pero haga un buclei<a
, luego agregue alr[i]=new string('#',a),
ladoj=0
y agregue una condición para verificar quei
esté dentro de los límites delj
bucle (esto debería pagar, porque pierde todo el Linq).Haskell , 126 bytes
Pruébalo en línea!
fuente
JavaScript (ES6),
174170147 bytesIntentalo
Explicación
fuente
C (gcc) , 97 bytes
Pruébalo en línea!
fuente
V ,
70, 44, 42 bytesPruébalo en línea!
Esto es horrible Eww.Mucho mejor. Todavía no es el más corto, pero al menos algo golfoso.¡Ahorré dos bytes gracias a @ nmjmcman101!
Hexdump:
fuente
MATL ,
2623222018 bytesLa entrada es un vector de columna
[a; b; c]
. Utiliza la salida de caracteres2
,1
,0
.Pruébalo en línea!
Además, funciona para hasta diez cajas, no solo para tres. Aquí hay un ejemplo con cinco cajas .
fuente
Mathematica, 49 bytes
Toma entrada
[c, b, a]
. La salida esa=1, b=2, c=3
.¿Cómo?
fuente
Grid
No haceString
ni loPrint
hace.PHP> = 7.1, 180 bytes
En este caso, odio que las variables comiencen con a
$
en PHPPHP Sandbox en línea
fuente
$argv
como una matriz? ¿Has intentado eso? ¿Has probado ternaries separados?Mathematica, 173 bytes
entrada
fuente
Python 2 , 87 bytes
Pruébalo en línea!
Calcula aritméticamente los números para imprimir agregando números del formulario
111100
. Hay mucha fealdad, probablemente hay margen de mejora.fuente
Java 8,
265252 bytes-13 bytes reemplazando los caracteres con dígitos.
Definitivamente se puede jugar al golf utilizando un enfoque diferente.
Explicación:
Pruébalo aquí
fuente
JavaScript (ES6), 112
Función anónima que devuelve una cadena de varias líneas. Caracteres 0,1,2
Menos golf
fuente
PHP> = 5.6, 121 bytes
Ejecutar
-nr
o probarlo en línea .Bucles combinados de nuevo ... ¡Los amo!
Descompostura
fuente