Escriba una función o programa con nombre que acepte un solo número entero N e imprima (en STDOUT) o devuelva (como una cadena) las primeras N barras de la espiral a continuación, comenzando con la barra vertical en el centro y girando en sentido horario hacia afuera.
_______________
/ _____________ \
/ / ___________ \ \
/ / / _________ \ \ \
/ / / / _______ \ \ \ \
/ / / / / _____ \ \ \ \ \
/ / / / / / ___ \ \ \ \ \ \
/ / / / / / / _ \ \ \ \ \ \ \
/ / / / / / / / \ \ \ \ \ \ \ \
| | | | | | | | | | | | | | | |
\ \ \ \ \ \ \___/ / / / / / / /
\ \ \ \ \ \_____/ / / / / / /
\ \ \ \ \_______/ / / / / /
\ \ \ \_________/ / / / /
\ \ \___________/ / / /
\ \_____________/ / /
\_______________/ /
Puede suponer que 0 <N <= 278. Su salida no puede contener ningún espacio en blanco delante del carácter más a la izquierda de la espiral. Opcionalmente, puede imprimir una nueva línea final.
Para una entrada de 10, la salida correcta es
_
/ \
| |
\___/
Para una entrada de 2, la salida correcta es
/
|
Para una entrada de 20, la salida correcta es
___
/ _ \
/ / \ \
| | | |
\___/ /
Una salida que sería incorrecta porque el carácter de la izquierda está precedido por espacios en blanco es
___
/ _ \
/ / \ \
| | | |
\___/ /
El ganador es el envío más corto, en bytes.
|
) son simplemente el carácter más cercano que puede representar la reunión de a/
y\
.Respuestas:
CJam - 156/147
Pruébalo en línea
Funciona con entradas de 1 a 378 inclusive (100 más de lo requerido)
Utilizando el último código CJam comprometido (disponible públicamente en hg) pero inédito en el momento en que se publicó este desafío, la solución se puede acortar a 147 caracteres:
Explicación:
El programa construye iterativamente todas las espirales como matrices de [carácter xy] comenzando
[0 0 '|]
, obtiene la espiral solicitada, ajusta las coordenadas para que el mínimo x e y sean 0, crea una matriz de espacios (con el número correcto de filas y 50 columnas) ) luego establece los caracteres de la espiral y une las filas con nuevas líneas.fuente
Python 2,
290289Probablemente sea realmente malo, pero intenté: D
La salida contiene espacios finales, pero eso no está prohibido en la especificación.
Actualización: guardado 1 byte con cambio
\n
a;
.fuente
JavaScript (ES6) 257
288 321Editar pasos combinados.
Edite el código de Golf para tocar un poco más de char
Construya la salida de forma iterativa en la matriz r, haciendo un seguimiento de la posición actual x e y y la dirección actual. Cuando la posición x o y es <0, toda la matriz r se reajusta.
Variables principales
Sin golf
Prueba en la consola Firefox / FireBug (o JSFiddle thx @Rainbolt)
Salida
fuente
Pyth
166165Acabo de traducir mi respuesta de Python a Pyth, con mis excelentes habilidades de Pyth. El vómito resultante está debajo.
fuente