A Grande Pirâmide de Gizé, a maior pirâmide do Egito, não é apenas a mais antiga das Sete Maravilhas do Mundo Antigo, mas é também a única a permanecer praticamente intacta. As pirâmides egípcias podem levar até 20 anos para serem construídas e são tão grandes que Al-Aziz Uthman, filho do grande Saladino que esmagou os cruzados, teve que desistir de demolir as grandes pirâmides de Gizé porque foi considerada uma tarefa muito grande . As pirâmides egípcias foram construídas principalmente como túmulos para os faraós do país e seus consortes durante os períodos do Reino Antigo e Médio (c. 2686-1690 aC) e, a partir de 2008, 138 pirâmides egípcias foram descobertas.
A tarefa é criar um programa que insira uma sequência de distâncias separadas por um espaço e produza pirâmides de texto 10 × 10 separadas por essas distâncias. Uma distância de 1 é igual a dois caracteres.
Uma pirâmide de texto ficará assim:
/\
/--\
/----\
/------\
/--------\
/----------\
/------------\
/--------------\
/----------------\
/------------------\
Se a entrada consistir apenas em uma quebra de linha, uma pirâmide será produzida, como acima . Para cada pirâmide, as pirâmides à esquerda são exibidas como se estivessem na frente.
Exemplo I
Entrada:
4 3 1
Resultado:
/\ /\ /\/\
/--\ /--\ /--\-\
/----\ /----\/----\-\
/------\/------\-----\-\
/--------\-------\-----\-\
/----------\-------\-----\-\
/------------\-------\-----\-\
/--------------\-------\-----\-\
/----------------\-------\-----\-\
/------------------\-------\-----\-\
Exemplo II
Entrada:
0 9
Resultado:
/\ /\
/--\ /--\
/----\ /----\
/------\ /------\
/--------\ /--------\
/----------\ /----------\
/------------\ /------------\
/--------------\ /--------------\
/----------------\/----------------\
/------------------\-----------------\
Exemplo III
Entrada:
11
Resultado:
/\ /\
/--\ /--\
/----\ /----\
/------\ /------\
/--------\ /--------\
/----------\ /----------\
/------------\ /------------\
/--------------\ /--------------\
/----------------\ /----------------\
/------------------\ /------------------\
O aplicativo para atender a esses requisitos com a menor quantidade de caracteres é o vencedor.
Referência: Wikipedia.org
Respostas:
Golfscript, 70 caracteres
Porta direta da minha solução Ruby , por isso tenho certeza de que é possível reduzi-la em alguns caracteres.
fonte
Windows PowerShell, 122
132133139Script de teste .
A entrada aleatória também cria boas imagens:
fonte
$input=Read-Host
na parte superior, caso contrário, não solicitará entrada. Como isso deve ser executado?echo 0 3 4 1|powershell -noprofile -file pyramids.ps1
Ou do PowerShell'0 1 4 3' | .\pyramids.ps1
. Este é um problema frequente com golfe em PowerShell, infelizmente, como você só pode aceitar qualquer canalizada-in de entrada ou de entrada interativo. O PowerShell realmente não tem a noção de stdin que outros idiomas e ambientes possuem, e isso às vezes mostra. Eu geralmente busco entrada direcionada, a menos que a tarefa exija explicitamente interatividade, como Adivinhe o número .Haskell, 148 caracteres
Estou bastante insatisfeito com isso! Parece muito longo. Ideias?
fonte
++
's para uma única lista e usar concat aka>>=id
. Não sei se isso vai ajudar. Outro ponto seria usar emfoldr1
vez defoldr
.++
sequências economiza apenas um caractere por item, e a sobrecarga da finalconcat
é muito alta aqui. Não éfoldr
possível usar ofoldr1
formulário, pois o tempo de resultado éString
o tipo de lista[Int]
(as1
variantesfold
exigem que sejam iguais.)Python, 123 caracteres
fonte
Ruby 1.9, 116 caracteres
fonte
Perl,
130 126132 caracteresVersão ligeiramente mais curta, que recebe a entrada como argumentos da linha de comando e não do stdin:
Não posso acreditar que ninguém fez uma solução regex ainda. Perl está longe de ser minha melhor linguagem, então isso provavelmente pode perder muito mais. Eu estaria interessado em ver uma implementação sed, se alguém estiver pronto para o desafio.
(Obrigado, @mbx, por 4 caracteres).
fonte
JavaScript, 396 bytes
Não vou ganhar com JavaScript, mas agora há uma entrada de JavaScript :)
Uso:
_("1 2 3")
etc.fonte
Rubi (112)
Um pouco menor que a solução Ruby da Ventero, com uma abordagem diferente. Comecei a aprender Ruby, então isso provavelmente pode ser bastante reduzido.
fonte
PowerShell,
10598 bytes, a leitura mais estrita da especificação-7 bytes da resposta do migimaru .
Script de teste:
Resultado:
Powershell,
10194, divertido com um espaço em branco líderfonte
Não consegui obter a versão C # 3 mais curta que essa. Não sei exatamente o número de caracteres, mas suspeito que perdi. :-(
fonte