Wyzwanie
Właśnie kupiłeś zupełnie nowe krzesło! Problem w tym, że nie masz pojęcia, jak to kontrolować, więc musisz napisać program, który zrobi to za Ciebie.
Tak długo możesz siedzieć tylko w niedostosowanym krześle. Twój kod musi więc być jak najkrótszy.
Przykłady
5,3,2,2,1
O
|
|
| _
| |
|_|_
|
|
O
3,5,2,3,5
O
| _
| |
|__|__
|
|
__|__
OOOOO
2,13,1,1,13
O
| _
|______|______
______|______
OOOOOOOOOOOOO
Czy jestem jedynym, który myśli, że to wygląda jak samolot?
Części do krzeseł
Krzesło ma różne elementy:
O
|
| <- Backrest
| _ <- Armrest
| |
|__|__ <- Seat
|
| <- Leg
_|_
OOO <- Wheels
Wejście
Będziesz wydawał krzesło o różnych zmiennych.
Dane wejściowe będą w następującej kolejności, wszystkie dane wejściowe będą dodatnimi liczbami całkowitymi (zawsze większymi niż 0) i zawsze zostaną podane.
- Wysokość oparcia
- Szerokość siedziska zawsze nieparzysta
- Wysokość podłokietnika Zawsze mniejsza niż wysokość oparcia
- Wysokość nóg
- Liczba kół Zawsze mniejsza lub równa szerokości siedziska i Zawsze nieparzysta
Szczegółowe opisy części
Częściami krzesła są:
Oparcie: ta wysokość |
to wysokość oparcia
O
|
|
Siedzisko: jego wysokość _
to szerokość siedziska , wstaw |
środkową część podłokietnika.
__|__
Podłokietnik: jego wysokość |
to Wysokość Podłokietnika . Należy to wstawić na środku siedzenia.
_
|
|
Noga: wysokość |
zależy od wysokości nogi
|
|
Koła: koła są wyśrodkowane poniżej nóg. Jeśli jest ich więcej niż jeden, wszystkie koła oprócz środkowego powinny znajdować się _
w linii nad nimi.
_ _
OOO
Wynik
Wynik może mieć końcowy znak nowej linii. Każda linia może mieć końcowe spacje. Wiodące białe znaki nie są dozwolone
Odpowiedzi:
LabVIEW, 146 LabVIEW Prymitywy
To stało się o wiele większe niż sobie wyobrażałem ...
Tym razem nie będzie GIF-a, z jednej strony ze względu na rozmiar, z drugiej strony, ponieważ nikt nie może śledzić przepływu wszystkich danych.
Działa, chyba że otrzymasz LabVIEW i zasugerujesz serwer plików, ale nie będzie sposobu, aby to sprawdzić.
źródło
JavaScript (ES6), 197 bajtów
Wyjaśnienie
Cóż, dość szybko się to skomplikowało. Po prostu skomentuję to, co robi każda linia na wysokim poziomie. Mam nadzieję, że dzięki temu formatowaniu nie będzie zbyt trudno śledzić wszystkich operatorów trójskładnikowych.
Test
Pokaż fragment kodu
źródło
Python 2, 157 bajtów
Przykład:
3,7,1,2,5
źródło
JavaScript (ES6), 182
Anonimowa funkcja. Używając ciągów szablonów, istnieją 3 nowe wiersze, które są znaczące i uwzględniane w liczbie bajtów.
Bez pętli, używając powtórzenia w tym samym celu.
Mniej golfa
Test Snippet
źródło
SpecBAS -
185168 bajtówTeraz, gdy SpecBAS pozwala
?
na używanie zamiastPRINT
i nie potrzebujeLET
przed zmiennym przypisaniem, zaczyna być nieco lepszy w golfie.Pomaga także w określeniu pozycji drukowania y, x, aby uniknąć konieczności wykonywania dużych odstępów. To drukuje oparcie, siedzenie, ręce i nogi, a następnie koła.
EDYTOWAĆ:
aby wydrukować tył, zamień
FOR...NEXT
pętlę na potok + powrót pomnożony przez wysokość (("|"#13)*b
)źródło
Perl, 181 bajtów
zawiera +1 dla
-n
. Umieść plik iecho 5,3,2,2,1 | perl -n file.pl
Z komentarzami:
źródło