Die Große Pyramide von Gizeh, die größte Pyramide Ägyptens, ist nicht nur das älteste der sieben Weltwunder der Antike, sondern auch das einzige , das größtenteils erhalten geblieben ist. Der Bau der ägyptischen Pyramiden kann bis zu 20 Jahre dauern und ist so groß, dass Al-Aziz Uthman, der Sohn des großen Saladins, der die Kreuzfahrer niedergeschlagen hatte, auf die Zerstörung der großen Pyramiden von Gizeh verzichten musste, da dies als zu große Aufgabe angesehen wurde . Die ägyptischen Pyramiden wurden in der Zeit des Alten und Mittleren Reiches (ca. 2686–1690 v. Chr.) Hauptsächlich als Gräber für die Pharaonen und ihre Gefährten gebaut. Ab 2008 wurden 138 ägyptische Pyramiden entdeckt.
Die Aufgabe besteht darin, ein Programm zu erstellen, das eine Abfolge von durch ein Leerzeichen getrennten Abständen eingibt und 10 × 10 Textpyramiden erzeugt, die durch diese Abstände getrennt sind. Ein Abstand von 1 entspricht zwei Zeichen.
Eine Textpyramide sieht folgendermaßen aus:
/\
/--\
/----\
/------\
/--------\
/----------\
/------------\
/--------------\
/----------------\
/------------------\
Wenn die Eingabe nur aus einem Zeilenumbruch besteht, wird wie oben eine Pyramide erzeugt . Für jede Pyramide werden die Pyramiden links so angezeigt, als wären sie vorne.
Beispiel I
Eingang:
4 3 1
Ausgabe:
/\ /\ /\/\
/--\ /--\ /--\-\
/----\ /----\/----\-\
/------\/------\-----\-\
/--------\-------\-----\-\
/----------\-------\-----\-\
/------------\-------\-----\-\
/--------------\-------\-----\-\
/----------------\-------\-----\-\
/------------------\-------\-----\-\
Beispiel II
Eingang:
0 9
Ausgabe:
/\ /\
/--\ /--\
/----\ /----\
/------\ /------\
/--------\ /--------\
/----------\ /----------\
/------------\ /------------\
/--------------\ /--------------\
/----------------\/----------------\
/------------------\-----------------\
Beispiel III
Eingang:
11
Ausgabe:
/\ /\
/--\ /--\
/----\ /----\
/------\ /------\
/--------\ /--------\
/----------\ /----------\
/------------\ /------------\
/--------------\ /--------------\
/----------------\ /----------------\
/------------------\ /------------------\
Der Antrag, diese Anforderungen in der geringsten Anzahl von Zeichen zu erfüllen, ist der Gewinner.
Referenz: Wikipedia.org
Antworten:
Golfscript, 70 Zeichen
Direkte Portierung meiner Ruby-Lösung , daher bin ich sicher, dass es möglich ist, diese um einige Zeichen zu kürzen.
quelle
Windows PowerShell, 122
132133139Skript testen .
Zufällige Eingabe sorgt auch für schöne Bilder:
quelle
$input=Read-Host
, sonst fragt es nicht nach Eingabe. Wie soll das laufen?echo 0 3 4 1|powershell -noprofile -file pyramids.ps1
Oder von PowerShell'0 1 4 3' | .\pyramids.ps1
. Dies ist ein häufiges Problem bei in Powershell golf spielen, leider, da man nur akzeptieren kann entweder verrohrt-in - Eingang oder interaktive Eingabe. PowerShell hat nicht wirklich die Vorstellung von Standard, die andere Sprachen und Umgebungen haben, und das zeigt sich manchmal. Normalerweise greife ich zu Pipe-Eingaben, es sei denn, die Aufgabe fordert explizit Interaktivität, z. B. Errate die Nummer .Haskell, 148 Zeichen
Ich bin damit ziemlich unzufrieden! Es fühlt sich einfach viel zu lang an. Ideen?
quelle
++
's in eine einzige Liste ändern und concat aka verwenden>>=id
. Ich weiß nicht, ob es helfen wird. Ein weiterer Punkt wäre die Verwendung vonfoldr1
anstelle vonfoldr
.++
Sequenzen wird nur ein Zeichen pro Element gespeichert, und der Overhead des Finalesconcat
ist hier zu hoch. Das Formularfoldr
kann nicht verwendet werdenfoldr1
, da die Ergebniszeit ist,String
während der[Int]
1
fold
Python, 123 Zeichen
quelle
Ruby 1.9, 116 Zeichen
quelle
Perl,
130 126132 ZeichenEtwas kürzere Version, die Eingaben eher als Befehlszeilenargumente als von stdin akzeptiert:
Ich kann nicht glauben, dass noch niemand eine Regex-Lösung gemacht hat. Perl ist weit davon entfernt, meine beste Sprache zu sein, daher kann dies wahrscheinlich viel mehr verlieren. Ich würde mich über eine sed-Implementierung freuen, wenn sich jemand der Herausforderung stellt.
(Danke, @mbx, für 4 Zeichen).
quelle
JavaScript, 396 Bytes
Ich werde mit JavaScript nicht gewinnen, aber es gibt jetzt einen JavaScript-Eintrag :)
Verbrauch:
_("1 2 3")
etc.quelle
Rubin (112)
Etwas kürzer als die Ruby-Lösung von Ventero mit einem anderen Ansatz. Ich habe gerade angefangen, Ruby zu lernen, daher kann dies wahrscheinlich einiges reduziert werden.
quelle
Power Shell,
10598 Bytes, das strengste Lesen der Spezifikation-7 Bytes von Migimarus Antwort .
Testskript:
Ausgabe:
Powershell,
10194, Spaß mit einem führenden Leerzeichenquelle
Ich konnte die C # 3-Version nicht kürzer bekommen. Ich kenne die Anzahl der Charaktere nicht genau, aber ich vermute, dass ich verloren habe. :-(
quelle