De repente tengo muchas ganas de jugar al tenis, ¡pero por desgracia no tengo cancha!
¡Sorpresa! Aquí es donde tu entras.
Debes imprimir una cancha de tenis para mí, pero debes hacerlo en la menor cantidad de bytes posible por razones confidenciales.
Pista de tenis
---------
| |
---------
| | |
xxxxxxxxx
| | |
---------
| |
---------
Respuestas:
Lienzo , 13 bytes.
Pruébalo aquí!
fuente
Python 2, 65 bytes
Flp.Tkc guardó un byte.
fuente
'|'+' '*7
la segunda cadenas
para guardar un byte!05AB1E ,
292726 bytesPruébalo en línea!
fuente
9'-×D'|4ð׫©ûs®¨'|«û5'x×»û
trató de refactorizar un poco, no se puede romper 26.Python 3 -
7372 bytesPython 3.6 - 75 bytes
El crédito va a flp-tkc . Gracias :)
¡Intenta aquí!
fuente
/// ,
6456 bytesPruébalo en línea!
Otra solución de 56 bytes:
fuente
V , 25 bytes
Pruébalo en línea!
Esto debería ser de 23 bytes:
Pero me encontré con varios errores al crearlo. :(
fuente
Jalea , 25 bytes
TryItOnline!
Tenía la esperanza de usar la repetición de la cancha de 1,3,1 cuartos, pero no puedo exprimirlo en menos (una versión en bruto es 28:)
“ßṂuB’b4s3x“¢¤¢‘ị“- x|”ŒBŒḄY
.¿Cómo?
fuente
J,
70545150 bytes¡Ahorré un byte gracias a Zgarb!
Alguna técnica de compresión estándar, utilizando un RLE comprimido.
fuente
9 9$'-| |-| | |x| | |'#~3 9 1 7{~4#.inv 1851926050
Rubí, 60 bytes.
Sin golf
fuente
herramientas bash / Unix,
5857 bytesSolo aparecen cuatro caracteres distintos de la nueva línea en la salida deseada, lo que permite que cada línea se codifique como un número base-4. Estos números se escriben en hexadecimal en el guión, por brevedad.
La calculadora Unix dc se usa tanto para la conversión de base 16 a base 4 como para la manipulación de la pila para permitir una fácil repetición de líneas en los lugares correctos.
Editar: se eliminó un byte intercambiando dos de los dígitos de base 4 utilizados para codificar caracteres, lo que permite que el comando tr sea un byte más corto que la versión anterior.
fuente
JavaScript, 85 bytes
fuente
JavaScript (ES6),
86848381 bytesGuardado 2 bytes, gracias a Neil
Método alternativo # 1, 93 bytes
Método alternativo # 2, 86 bytes
Sugerido por Neil:
Método alternativo # 3, 91 bytes
Un enfoque recursivo:
fuente
console.log('-9\n| 7|\n-9\n| 3| 3|\nx9\n| 3| 3|\n-9\n| 7|\n-9'.replace(/.\d/g,s=>s[0].repeat(s[1])))
(reemplazar\n
con nueva línea obviamente).console.log('-\n |\n-\n |\nx\n |\n-\n |\n-'.replace(/.*/g,s=>s.repeat(9).slice(-9)))
.|
según corresponda, en lugar del espacio único que aparece en mi comentario.SOGL 0.5 ,
242320 bytes (no competidor)Explicación:
Entonces, ¿cómo funciona la cadena comprimida?
La cadena convertida de base250 a binario es
1000000100111110010100001110100000001100010001
y aproximadamente lo que hace:
no competitiva, porque el lenguaje es posterior al desafío. Y este desafío tiene solo un día. Sabía que debería haber puesto algo ayer. Hice esto como prueba de mi idioma y resultó demasiado bueno para no publicar. Estoy bastante seguro de que esto es más golfable también.
fuente
/// , 59 bytes
Pruébalo en línea!
Superado ...
fuente
Javascript (ES6), 86 bytes:
Prueba aquí:
fuente
b
, ya que esto significa que puede eliminar la nueva línea despuésxxxxxxxxx
y la que agrega entrea
yb
. Puede guardar otros 3 bytes mediante el establecimientoa
de---------
primero y luego la concatenación de la segunda fila y una a sí misma.05AB1E , 26 bytes
Utiliza la codificación CP-1252 . Pruébalo en línea!
fuente
PHP,
6662 bytesEsta es la respuesta original (66 bytes):
Genera un aviso debido a la constante desconocida
x
. El aviso se puede suprimir mediante el establecimientoerror_reporting=0
dephp.ini
o en la línea de comandos:La última línea de la salida no termina con un carácter de nueva línea.
La respuesta actualizada (62 bytes), mejorando una mejora sugerida por @Titus:
Ejecútelo sin un archivo de configuración (por defecto
error_reporting=0
es así):Ambas versiones del código contienen nuevas líneas literales incrustadas en la cadena (1 byte más corto que
\n
) y no podemos desenvolverlas.fuente
-d error_reporting=0
, solo úsalo-n
.<?=$a=($b="---------\n|")."...
.-n
es mucho más corto que-d error_reporting=0
:-) De hecho, solo hay 66 caracteres útiles en la respuesta. Los conté usandols -l
y olvidé que mivi
está configurado para garantizar que el archivo termine con una nueva línea. Mejoré tu mejora y exprimí 3 bytes más. Gracias.PHP, 72 bytes
Casi odio cuando es más corto así que con calcular un poco.
fuente
Ruby, 52 bytes
Usando la doble simetría, las líneas son:
0-1-0 / 2-3-2 / 0-1-0
el bucle se puede desenrollar fácilmente y la lista anidada se aplana en la salida.fuente
Pyke,
282625 bytesPruébalo aquí!
fuente
05AB1E, 25 bytes
Utiliza la codificación CP-1252 . Pruébalo en línea!
Explicación:
fuente
Vim, 32 bytes
Esto imprimirá la cancha de tenis en un búfer vim.
^M
representa la tecla Enter (0x0d) y^[
es la tecla Escape (0x1b). Puede ejecutar estas pulsaciones de teclas / código guardándolos en un archivo y ejecutandoImprimir en stdout
Si tiene que imprimirse en stdout en su lugar, puede guardar el búfer en un archivo (usé "a") y usar el shell
vim
configurado para usar (usébash
) así como elcat
programa para imprimir la cancha de tenis en stdout (51 bytes):Es lo mismo que la versión anterior pero con
:w!a|sil !cat %^M:q^M
agregado al finalfuente
J, 36 bytes
Esto funciona en REPL, que es la forma estándar de usar J:
Con 41 bytes , puedo imprimir el resultado en STDOUT:
Pruébalo en línea!
Explicación
Construyo la cancha de tenis una fila a la vez.
fuente
PowerShell ,
6766 bytesPruébalo en línea!
Solo un poco de multiplicación de cadenas, configuración de variables y garantía de que están encapsuladas en parens para colocar copias en la tubería. El valor predeterminado
Write-Output
al finalizar el programa nos proporciona nuevas líneas de forma gratuita.Gracias a @ConnorLSW por guardar un byte obvio.
fuente
$(' '*7)
es en realidad 8 caracteres, sería más corto para hacer solo| |
como espacios.ToLower()
Python 2, 75 bytes
Utiliza variables prestadas de @GurupadMamadapur
Alternativa también para 75
fuente
Emacs,
4335 pulsaciones de teclasM-9
x
RET: nueve x, retornoC-SPC: marca establecida
|
M-3 SPC|
M-3 SPC|
RET: tubería, tres espacios, tubería, tres espacios, tubería, retornoM-9
-
RET: nueve guiones, retorno|
M-7 SPC|
RET: tubería, siete espacios, tubería, retornoM-9
-
RET: nueve guiones, retornoC-x C-x: punto de cambio y marca, selección de región
M-w: copiar región
C-p: línea anterior
C-y: extraer texto copiado
M-x
rev-r
RET: ejecutarreverse-region
comandofuente
Lua, 82 bytes.
Probé muchos métodos, pero este resultó ser el vencedor.
fuente
Pushy , 33 bytes
Esta pregunta tenía 33 votos a favor, y había 33 respuestas, así que solo tuve que publicar una solución de 33 bytes ...
Pruébalo en línea!
Explicación
El código se puede dividir en varias partes, para que sea más fácil de entender. La primera parte funciona así:
La pila es ahora:
El operador espejo
w
, luego refleja toda la pila, produciendo:Entonces:
La pila ahora comienza a parecerse a la cancha de tenis:
Para terminar, usamos el operador de espejo
w
una vez más, que refleja esta cuerda para producir la cancha de tenis completa.Todo lo que queda ahora es imprimir, lo que hace el
"
personaje.fuente
Unix Shell; usando dc y tr; 55 Bytes: (Optimización de la solución Mitchell Spector)
Otras soluciones: Uso de sed; 81 bytes;
Usando dc en función: 88 Bytes
o
Usando bc en función: 99 Bytes
fuente
Powershell, 56 bytes
Explicación: la mitad de la cancha directa
Alternativa, 68 bytes
Explicación: el cuarto de la cancha utiliza los mismos índices para la visualización de filas y columnas
fuente