Eingang:
- Sie erhalten eine Reihe von ganzen Zahlen (über stdin oder prompt eingegeben).
- Jedes Paar von Ganzzahlen in dieser Reihe repräsentiert die BREITE eines Gebäudes [gültiger Bereich: 1..10] und die HÖHE [gültiger Bereich: 0..10].
- Nehmen Sie an, dass der Input wohlgeformt ist.
Beispieleingabe (die zweite Zeile dient nur zu Demonstrationszwecken):
1 2 1 1 1 0 2 4 1 3 1 2 2 1 WHWHWHWHWHWHWH
Entsprechende Beispielausgabe:
______ / ______ / | | | | __ | | / __ / | __ | | | | __ / __ / | | | | / __ / | | | | __ | | | | | ______ | | / __ / | | | | | / ______ / | | | | | _ | | | | | | | _o_ | _o_ | / __ | _o _____ | _o_ | _o_ | _o _____ | / ------------------------------------- - - - - - - - - - - - - -------------------------------------
Regeln:
Die Gebäude
- Ein Grundbaustein sieht so aus (1 W, 1H)
__ / __ / | (Der Basiswürfel wurde von demjenigen in dieser Frage ausgeliehen: | | | http://stackoverflow.com/questions/1609702/code-golf-playing-cubes) | ___ | /
Unsere Ansicht ist (ahum) ~ 3D, sodass benachbarte Gebäude möglicherweise Teile anderer verbergen. Gebäude werden 'logisch' von links nach rechts gerendert.
Vor dem ersten Gebäude stehen links zwei Felder.
Sie rendern jedes Gebäude, indem Sie WIDTH und HEIGHT auf die Dimensionen des Basiswürfels anwenden (sehen Sie sich die mitgelieferte Beispielausgabe an!). Als Referenz: Anzahl der Zeichen von links nach rechts (für ein Gebäude mit W> 1): (W * 5) - (W-1).
Gebäude mit einer Höhe> 0 haben EINE Tür (die vom Charakter dargestellt wird
o
und sich zwei Zeichen von der linken Wand in der unteren Reihe entfernt befindet).
Die Straße:
- Die Straße besteht aus drei Teilen, die wir "oben", "Mitte" und "unten" nennen.
- Der "obere" Teil und der "untere" Teil sind identisch, abgesehen von der Tatsache, dass dem "oberen" Teil zwei Leerzeichen vorangestellt sind.
- Dem Mittelteil geht ein Leerzeichen voraus und besteht aus einer Wiederholung des folgenden Musters:
'-'
- Die Länge ist durch die Gesamtbreite der kombinierten Gebäude zu bestimmen: Der äußerste rechte Teil der Straße entspricht der Position der „rechten“ Wand des „letzten“ Gebäudes.
Gewinner:
Das ist Code-Golf! Der Gewinner ist der qualifizierende Teilnehmer mit der kürzesten Lösung (nach Anzahl der Quellcodes). Die Quelle darf nur aus druckbaren ASCII-Zeichen bestehen. Habe Spaß!
Imaginäre Bonuspunkte für (zufällige) Fenster, Autos oder Fußgänger.
Fühlen Sie sich frei zu kommentieren, wenn die Spezifikationen nicht klar sind!
'- '
(mit zwei Leerzeichen)? Edit : Ah, die beiden Leerzeichen zeigen nicht: P. Sie können mehrere Leerzeichen anzeigen, indem Sie ASCII 255 (nicht unterbrechendes Leerzeichen, ALT + 255 auf Nummernblock) verwenden oder indem Sie meinen Kommentar hier kopieren und einfügen. Oder ... Sie könnten stattdessen einfach sagen, es ist eine Wiederholung von ' - '
:)
but you must not enforce this
in 3)? IMO, jede Annahme kann ausgenutzt werden, wenn sie Ihre Punktzahl erhöht. Ich kann also Code schreiben, der nur funktioniert, wenn die Gesamtbreite kleiner als 80 ist, wenn ich eine geringere Anzahl von Zeichen herausdrücken kann. Wenn Sie beispielsweise eine Ausgabe in ein Anzeigepuffer-Array mit einer Breite von 80 schreiben, stürzt die Ausgabe bei jeder höheren Gesamtbreite ab. Wenn Sie möchten, dass eine beliebige Breite unterstützt wird, geben Sie nicht die Annahme an - Sie können nicht beides haben: P