Tarea
Dado un carácter imprimible que no sea un espacio en blanco, haga una representación cuadrada de 3x3 de esa entrada. Por ejemplo, si la entrada es #
, entonces la salida es:
###
# #
###
Reglas
- El formato de salida es estricto, aunque se permite una nueva línea final. Significa que se requiere el espacio en el medio, y también que se requieren los dos caracteres de nueva línea que separan las tres líneas.
Casos de prueba
Entrada: #
Salida:
###
# #
###
Entrada: A
Salida:
AAA
A A
AAA
Entrada: 0
Salida:
000
0 0
000
Tanteo
Este es el código de golf . La respuesta más corta en bytes gana.
Respuestas:
Carbón ,
53 bytesPruébalo en línea! Editar: Ahorró 40% gracias a @carusocomputing. Explicación:
fuente
B³S
para engañar a la mierda viva de esto.Zanahoria , 11 bytes
Pruébalo en línea!
El programa está en modo intercalación, donde
#
se reemplazan los s con la entrada.fuente
Python 2 , 32 bytes
Pruébalo en línea!
Para
s='a'
: el medios+'\n \n'+s
generaa\n \na
y los.join
convierte (las negrillas son las que agregan), porque acepta una cadena como iterable, luego se rodea con los dos caracteres faltantesaa\na a\naa
a
.join
.join
fuente
3*c+c.join('\n \n')+3*c
empata a los 32.)MATL , 5 bytes
Pruébalo en línea!
Explicación
fuente
05AB1E , 8 bytes
Pruébalo en línea!
Idea original usando 30 como número binario (sin terminar, alguien más intente esto en otro idioma):
05AB1E , 12 bytes
Pruébalo en línea!
fuente
Python 3.6 , 33 bytes
Pruébalo en línea!
fuente
import sys
y luegosys.version
en la respuesta, devuelve 3.6.1 en lugar de 3.5.2. No tengo idea de por qué dice 3.5.2 en la parte superior, ¡parece que se han equivocado allí!RPL (Reverse Polish Lisp) , 60 caracteres
(Tenga en cuenta que "→" es un solo carácter en la HP48 y las calculadoras compatibles)
Representaría visualmente lo que quieres al tener tres elementos en la pila:
Si insiste en devolverlo como una cadena, también debe agregar los caracteres de nueva línea y combinar las cadenas, dejadas como ejercicio para el probador siguiente.
Explicación:
→STR
: Convierte el último objeto de la pila en una cadena. (Por lo tanto, la entrada puede ser cualquier cosa, por ejemplo, un número).1
4
: Empuje el número1
y4
hacia la pila.START [...] NEXT
: Como un bucle for pero sin acceso a la variable de contador. Toma dos números de la pila (aquí, solo hemos presionado1
y4
) y ejecuta el código[...]
las veces correspondientes (aquí, cuatro veces).DUP
: Duplica la última entrada en la pila." "
: Empuje la cadena(es decir, la cadena con un espacio en blanco) a la pila.
+
: Tome dos objetos de la pila y devuélvalos agregados, para cadenas: Concatenados4
: Empuja el número4
a la pila.ROLLD
: Toma el último elemento (aquí:4
que acabamos de empujar) de la pila y tira el siguiente elemento tan abajo de la pila como lo especifica el número que acabamos de tomar de la pila.SWAP
: Intercambia los dos últimos elementos de la pila.2
: Empujar2
a la pila.PICK
: Toma un elemento (aquí: el2
que acabamos de empujar a la pila), lo interpreta como un número n y copia el enésimo elemento de la pila.fuente
JavaScript, 28 bytes
Intentalo
fuente
c+'\n'+c
forma temporal.Jalea , 8 bytes
1 byte gracias a Erik the Outgolfer.
Pruébalo en línea!
fuente
x4µ©;⁶;®œs3Y
12 bytes porque no sabía cómo evitar que la repetición multiplicara todo mi paso intermedio, ¡pero bueno!K
para hacerj⁶
. Ah, y hay una forma rápida`
de convertir una díada en una mónada usando el mismo argumento en ambos lados.Java 7,
5655 bytes-1 Gracias a Leaky Nun por señalar el espacio que perdí
Simplemente reemplaza los puntos con el carácter dado, para la entrada #:
Pruébalo en línea!
fuente
PHP, 32 bytes
Pruébalo en línea!
fuente
<?=$a=$argn,"$a$a\n$a $a\n$a$a$a";
(el salto de línea real en lugar de \ n, por supuesto) tiene exactamente el mismo número de bytes.sed,
2818 bytesPruébalo en línea!
fuente
:
. Fijo.Brain-Flak ,
7670 + 1 = 71 bytesRequiere la
-c
banderaPruébalo en línea!
fuente
(()()()()()){}
con([])[]{}
.Pyth, 7 bytes
Prueba esto en línea.
Explicación:
fuente
Brain-Flak ,
61, 59 bytesPruébalo en línea!
Esto es 58 bytes de
+1
byte de código para el-c
indicador que permite la entrada y salida ASCII.Explicación:
fuente
C (gcc) ,
4947 bytes¡Ahorró 2 bytes gracias a 2501!
Pruébalo en línea! tiene una nueva línea al final
fuente
for(j=11;j;)...
Python 3 , 34 bytes
Pruébalo en línea!
fuente
lambda x:x*3+'\n%s '%x+x+'\n'+x*3
Octava , 36 bytes
Pruébalo en línea!
Explicación
Esto crea una matriz de caracteres 3x3 con el carácter de entrada repetido y establece su quinta entrada en orden de columna principal (es decir, su centro) en
32
(ASCII para el espacio).fuente
Pyke , 5 bytes
Pruébalo en línea!
fuente
Rubí ,
2725 bytesGuardado 2 bytes gracias a Level River St
Pruébalo en línea!
fuente
f=...
) y luego llamarlo conf.call(...)
"\n"
ahorrar 1 byte. Mejor uso,$/
que es una variable especial establecida en nueva línea por defecto, ahorrando 2 bytes.tr
solución. buen trabajoBrainfuck, 40 bytes
Pruébalo en línea! Requiere una implementación que pueda acceder a la izquierda de la posición inicial.
Ver también: la respuesta mental de Graviton que tiene un enfoque diferente (pero es más largo).
Explicación:
Brainfuck puede hacer muchos trucos geniales con su conjunto de instrucciones limitado. Desafortunadamente, esta respuesta no usa ninguno de ellos, porque es más barato (en términos de bytes) simplemente codificar todo.
# = carácter de entrada, _ = espacio (ASCII 32), \ n = nueva línea (ASCII 10)
Resultados en este hermoso cuadro (para la entrada '+'):
fuente
05AB1E ,
76 bytes-1 byte gracias a carusocomputing.
Explicación:
Utiliza la codificación CP-1252 . Pruébalo en línea!
fuente
ж¹ðJû
por 6 bytes.Pyth , 11 bytes
Pruébalo en línea!
Explicación:
fuente
> <> ,
2423 bytesPruébalo en línea!
fuente
Swift3, 50 bytes
Esto usa el operador ternario para imprimir diferentes cadenas, dependiendo de la fila.
Pruébalo en línea
fuente
V , 8 bytes
Pruébalo en línea!
fuente
<M-h>ollow
comando (¿no documentado?) Que le permite ahuecar el interior de su caja: ¡ Pruébelo en línea!C #, 50 bytes
Caso de prueba:
fuente
Console
System.Console..
Vim, 9 pulsaciones de teclas
Suponiendo que la entrada char está presente en un búfer, vim hace que esto sea sencillo
Probablemente hay algunos comandos mágicos vim de uso aquí (siempre parece haber algunos), por lo que las sugerencias de mejora son bienvenidas. ¡Solo una pulsación de tecla detrás de V!
fuente
Conjunto Z80 u 8080, código de máquina de 21 bytes
Suponga que un dispositivo de E / S mapeado en memoria:
¡No se necesita intérprete!
Hexdump:
donde la dirección de entrada está en FF00h y la dirección de salida está asignada en FF01h. Las direcciones reales dependerán del hardware real. Por supuesto, esto supone que la E / S está mapeada en memoria. Si se asigna E / S, tomaría varios bytes adicionales porque las instrucciones de E / S Z80 y 8080 son dos bytes cada una. Esto también supone que el dispositivo de salida interpreta 0Ah como una nueva línea y no requiere un CR (0Dh) que agregaría 4 bytes adicionales al programa.
fuente
J-uby ,
2220 bytes-2 bytes gracias a @Jordan
Explicación
String#tr
es el método de reemplazo de caracteres de Ruby. El primero&
une:tr
a"...\n. .\n..."
, y el segundo se aplica parcialmente'.'
a él. Efectivamente, esto es->s{"...\n. .\n...".tr('.',s)}
fuente
:tr
Funcionaría tan bien como:gsub
aquí?