Wkład:
- Otrzymasz serię liczb całkowitych (podawanych przez standardowe wejście lub monit).
- Każda para liczb całkowitych z tej serii reprezentuje SZEROKOŚĆ budynku [prawidłowy zakres: 1..10] i WYSOKOŚĆ [prawidłowy zakres: 0..10]
- Załóżmy, że dane wejściowe są dobrze sformułowane.
Przykładowe dane wejściowe (drugi wiersz służy wyłącznie do celów demonstracyjnych):
1 2 1 1 1 0 2 4 1 3 1 2 2 1 WHWHWHWHWHWHWH
Odpowiadająca próbka wyjściowa:
______ / ______ / | | | | __ | | / __ / | __ | | | | __ / __ / | | | | / __ / | | | | __ | | | | | ______ | | / __ / | | | | | / ______ / | | | | | _ | | | | | | | _o_ | _o_ | / __ | _o _____ | _o_ | _o_ | _o _____ | / ------------------------------------- - - - - - - - - - - - - - -------------------------------------
Zasady:
Budynki
- Podstawowy element konstrukcyjny wygląda tak (1 W, 1H)
__ / __ / | (podstawowa kostka jest zapożyczona z tej na to pytanie: | | | http://stackoverflow.com/questions/1609702/code-golf-playing-cubes) | ___ | /
Nasz widok to (ahum) ~ 3D, więc sąsiednie budynki mogą ukrywać części innych. Budynki są „logicznie” renderowane od lewej do prawej.
Pierwszy budynek poprzedza dwie spacje po lewej stronie.
Renderujesz każdy budynek, stosując SZEROKOŚĆ i WYSOKOŚĆ do wymiarów kostki podstawowej (spójrz na dostarczone dane wyjściowe!). Dla porównania: liczba znaków od lewej do prawej „ściany” (dla budynku o W> 1): (W * 5) - (W-1).
Budynki o wysokości> 0 mają JEDEN drzwi (które są przedstawione przez postać
o
i znajdują się przy dwóch znakach od „lewej” ściany w „dolnym” rzędzie).
Droga:
- Droga składa się z trzech części, które nazwiemy „górną”, „środkową” i „dolną”.
- Część „górna” i „dolna” są identyczne, z wyjątkiem tego, że „górna” część poprzedzona jest dwoma spacjami.
- Środkowa część poprzedzona jest jedną spacją i składa się z powtórzenia następującego wzoru:
„-”
- Długość określa się na podstawie całkowitej szerokości połączonych budynków: najbardziej wysunięta na prawo część drogi odpowiada położeniu „prawej” ściany „ostatniego” budynku.
Zwycięzcy:
To jest golf golfowy! Zwycięzcą zostaje zakwalifikowany zawodnik z najkrótszym rozwiązaniem (według liczby kodów źródłowych). Źródło musi składać się wyłącznie z drukowalnych znaków ASCII. Baw się dobrze!
Wyimaginowane punkty bonusowe za (losowe) okna, samochody lub pieszych.
Jeśli specyfikacje nie są jasne, możesz komentować!
'- '
(z dwoma spacjami)? Edycja : Ach, dwie spacje nie pokazują: P. Możesz wyświetlić wiele spacji, używając ASCII 255 (spacja niełamliwa, ALT + 255 na klawiaturze numerycznej) lub kopiując i wklejając z mojego komentarza tutaj. Orr ... zamiast tego możesz po prostu powiedzieć, że to powtórzenie' - '
:)but you must not enforce this
3)? IMO, każde założenie jest dostępne do wykorzystania, jeśli zwiększy twój wynik. Mogę więc napisać kod, który działa tylko wtedy, gdy całkowita szerokość jest mniejsza niż 80, jeśli mogę wycisnąć mniejszą liczbę znaków. Na przykład zapisywanie danych wyjściowych do tablicy buforów wyświetlania o szerokości 80, aby zawiesić się na dowolnej większej szerokości całkowitej. Jeśli chcesz, aby jakakolwiek szerokość była obsługiwana, nie zakładaj - nie możesz mieć obu: POdpowiedzi:
Haskell, 396 znaków
Przykładowe dane wyjściowe:
źródło
Python, 415 znaków
Wykorzystuje plastry do narysowania wszystkich części budynku.
źródło