La Gran Pirámide de Giza, la pirámide más grande de Egipto, no solo es la más antigua de las Siete Maravillas del Mundo Antiguo, sino que también es la única que permanece en gran parte intacta. Las pirámides egipcias pueden tardar hasta 20 años en construirse y son tan grandes que Al-Aziz Uthman, hijo del gran Saladino que aplastó a los cruzados, tuvo que renunciar a demoler las grandes pirámides de Giza porque se consideró una tarea demasiado grande . Las pirámides egipcias se construyeron principalmente como tumbas para los faraones del país y sus consortes durante los períodos del Imperio Antiguo y Medio (c. 2686–1690 a. C.), y hasta 2008, se descubrieron 138 pirámides egipcias.
La tarea es crear un programa que ingrese una secuencia de distancias separadas por un espacio y produzca pirámides de texto de 10 × 10 separadas por esas distancias. Una distancia de 1 es igual a dos caracteres.
Una pirámide de texto se verá así:
/\
/--\
/----\
/------\
/--------\
/----------\
/------------\
/--------------\
/----------------\
/------------------\
Si la entrada consiste solo en un salto de línea, se producirá una pirámide, como se indicó anteriormente . Para cada pirámide, las pirámides a la izquierda se muestran como si estuvieran delante.
Ejemplo I
Entrada:
4 3 1
Salida:
/\ /\ /\/\
/--\ /--\ /--\-\
/----\ /----\/----\-\
/------\/------\-----\-\
/--------\-------\-----\-\
/----------\-------\-----\-\
/------------\-------\-----\-\
/--------------\-------\-----\-\
/----------------\-------\-----\-\
/------------------\-------\-----\-\
Ejemplo II
Entrada:
0 9
Salida:
/\ /\
/--\ /--\
/----\ /----\
/------\ /------\
/--------\ /--------\
/----------\ /----------\
/------------\ /------------\
/--------------\ /--------------\
/----------------\/----------------\
/------------------\-----------------\
Ejemplo III
Entrada:
11
Salida:
/\ /\
/--\ /--\
/----\ /----\
/------\ /------\
/--------\ /--------\
/----------\ /----------\
/------------\ /------------\
/--------------\ /--------------\
/----------------\ /----------------\
/------------------\ /------------------\
La aplicación para cumplir estos requisitos en la menor cantidad de caracteres es la ganadora.
Referencia: Wikipedia.org
Respuestas:
Golfscript, 70 caracteres
Puerto directo de mi solución Ruby , así que estoy seguro de que es posible acortar esto en bastantes caracteres.
fuente
Windows PowerShell, 122
132133139Prueba de guión .
La entrada aleatoria también hace buenas imágenes:
fuente
$input=Read-Host
en la parte superior, de lo contrario no pide entrada. ¿Cómo se debe ejecutar esto?echo 0 3 4 1|powershell -noprofile -file pyramids.ps1
O de PowerShell'0 1 4 3' | .\pyramids.ps1
. Este es un problema frecuente con jugar al golf en PowerShell, por desgracia, ya que sólo puede aceptar ya sea entubada de entrada o entrada interactiva. PowerShell realmente no tiene la noción de stdin que otros lenguajes y entornos tienen y esto se muestra a veces. Por lo general, voy por la entrada canalizada, a menos que la tarea explícitamente requiera interactividad, como Adivina el número .Haskell, 148 caracteres
¡Estoy bastante insatisfecho con esto! Simplemente se siente demasiado tiempo. Ideas?
fuente
++
's en una sola lista y usar concat aka>>=id
. No sé si ayudará. Otro punto sería usar enfoldr1
lugar defoldr
.++
secuencias solo le ahorra un personaje por elemento, y la sobrecarga de la finalconcat
es demasiado alta aquí. No sefoldr
puede usar elfoldr1
formulario porque el tiempo de resultado esString
mientras que el tipo de lista es[Int]
(Las1
variantesfold
requieren que sean iguales.)Python, 123 caracteres
fuente
Ruby 1.9, 116 caracteres
fuente
Perl,
130 126132 caracteresVersión ligeramente más corta que toma la entrada como argumentos de línea de comandos en lugar de desde stdin:
No puedo creer que nadie haya hecho una solución regex todavía. Perl está muy lejos de ser mi mejor idioma, por lo que esto probablemente puede perder mucho más. Me interesaría ver una implementación sed, si alguien está preparado para el desafío.
(Gracias, @mbx, por 4 caracteres).
fuente
JavaScript, 396 bytes
No voy a ganar con JavaScript, pero ahora hay una entrada de JavaScript :)
Uso:
_("1 2 3")
etc.fuente
Rubí (112)
Ligeramente más corto que la solución Rubí de Ventero, con un enfoque diferente. Acabo de empezar a aprender Ruby, por lo que probablemente esto se pueda reducir bastante.
fuente
Powershell,
10598 bytes, la lectura más estricta de la especificación-7 bytes de la respuesta de migimaru .
Script de prueba:
Salida:
Powershell,
10194, diversión con un espacio en blanco líderfuente
No pude obtener la versión C # 3 más corta que esta. No sé si el personaje cuenta exactamente, pero sospecho que he perdido. :-(
fuente