La Grande Pyramide de Gizeh, la plus grande pyramide d'Egypte, est non seulement la plus ancienne des sept merveilles du monde antique, mais elle est également la seule à rester en grande partie intacte. Les pyramides égyptiennes peuvent prendre jusqu'à 20 ans à construire et sont si grandes qu'Al-Aziz Uthman, fils du grand Saladin qui a écrasé les croisés, a dû renoncer à démolir les grandes pyramides de Gizeh parce que cela était considéré comme une tâche trop lourde . Les pyramides égyptiennes ont été principalement construites en tant que tombes pour les pharaons du pays et leurs épouses pendant les périodes de l'Ancien et du Moyen Empire (c. 2686–1690 avant notre ère), et en 2008, 138 pyramides égyptiennes ont été découvertes.
La tâche consiste à créer un programme qui saisit une séquence de distances séparées par un espace et produit des pyramides de texte 10 × 10 séparées par ces distances. Une distance de 1 équivaut à deux caractères.
Une pyramide de texte ressemblera à ceci:
/\
/--\
/----\
/------\
/--------\
/----------\
/------------\
/--------------\
/----------------\
/------------------\
Si l'entrée se compose uniquement d'un saut de ligne, alors une pyramide sera produite, comme ci-dessus . Pour chaque pyramide, les pyramides à gauche sont affichées comme si elles étaient devant.
Exemple I
Contribution:
4 3 1
Production:
/\ /\ /\/\
/--\ /--\ /--\-\
/----\ /----\/----\-\
/------\/------\-----\-\
/--------\-------\-----\-\
/----------\-------\-----\-\
/------------\-------\-----\-\
/--------------\-------\-----\-\
/----------------\-------\-----\-\
/------------------\-------\-----\-\
Exemple II
Contribution:
0 9
Production:
/\ /\
/--\ /--\
/----\ /----\
/------\ /------\
/--------\ /--------\
/----------\ /----------\
/------------\ /------------\
/--------------\ /--------------\
/----------------\/----------------\
/------------------\-----------------\
Exemple III
Contribution:
11
Production:
/\ /\
/--\ /--\
/----\ /----\
/------\ /------\
/--------\ /--------\
/----------\ /----------\
/------------\ /------------\
/--------------\ /--------------\
/----------------\ /----------------\
/------------------\ /------------------\
La candidature pour remplir ces conditions avec le moins de caractères est gagnante.
Référence: Wikipedia.org
Réponses:
Golfscript, 70 caractères
Port direct de ma solution Ruby , donc je suis sûr qu'il est possible de raccourcir cela de quelques caractères.
la source
Windows PowerShell, 122
132133139Script de test .
L'entrée aléatoire donne également de belles images:
la source
$input=Read-Host
en haut, sinon il ne demande pas d'entrée. Comment cela devrait-il être exécuté?echo 0 3 4 1|powershell -noprofile -file pyramids.ps1
Ou depuis PowerShell'0 1 4 3' | .\pyramids.ps1
. C'est un problème fréquent avec le golf dans PowerShell, malheureusement, car vous ne pouvez accepter que l'entrée canalisée ou l' entrée interactive. PowerShell n'a pas vraiment la notion de stdin que d'autres langages et environnements ont et cela se voit parfois. Je préfère généralement une entrée canalisée, sauf si la tâche appelle explicitement à l'interactivité, comme Devinez le nombre .Haskell, 148 caractères
Je suis assez insatisfait de ça! Cela semble trop long. Des idées?
la source
++
's en une seule liste et utiliser concat aka>>=id
. Je ne sais pas si ça va aider. Un autre point serait d'utiliser à lafoldr1
place defoldr
.++
séquences ne vous permet d'économiser qu'un caractère par élément, et les frais généraux de la finaleconcat
sont trop élevés ici. Lefoldr
ne peut pas utiliser lefoldr1
formulaire car l'heure du résultat estString
alors que le type de liste est[Int]
(les1
variantesfold
exigent qu'ils soient les mêmes.)Python, 123 caractères
la source
Ruby 1.9, 116 caractères
la source
Perl,
130 126132 132 caractèresVersion légèrement plus courte qui prend l'entrée comme arguments de ligne de commande plutôt que depuis stdin:
Je ne peux pas croire que personne n'ait encore fait de solution regex. Perl est loin d'être ma meilleure langue, donc cela peut perdre beaucoup plus. Je serais intéressé de voir une implémentation sed, si quelqu'un est prêt à relever le défi.
(Merci, @mbx, pour 4 caractères).
la source
JavaScript, 396 octets
Je ne vais pas gagner avec JavaScript, mais il y a maintenant une entrée JavaScript :)
Utilisation:
_("1 2 3")
etc.la source
Rubis (112)
Légèrement plus courte que la solution Ruby de Ventero, avec une approche différente. Je viens de commencer à apprendre Ruby, donc cela peut probablement être réduit un peu.
la source
Powershell,
10598 octets, la lecture la plus stricte de la spécification-7 octets de la réponse de migimaru .
Script de test:
Production:
Powershell,
10194, amusez-vous avec un espace blanc de premier planla source
Je n'ai pas pu obtenir la version C # 3 plus courte que cela. Je ne connais pas exactement le nombre de personnages, mais je soupçonne que j'ai perdu. :-(
la source