Istnieje satyryczna piosenka Little Boxes , oryginalnie napisana przez Malvinę Reynolds, na temat podmiejskiego bezładu, która ma następujące teksty:
Małe pudełka na zboczu wzgórza,
Małe pudełka z kleistego kleju,
Małe pudełka na wzgórzu,
Małe pudełka mimo wszystko.
Jest zielony i różowy
I niebieski i żółty
I wszystkie są zrobione z kleistego kleju
I wszystkie wyglądają tak samo.
Twoim zadaniem tutaj jest, biorąc pod uwagę liczbę całkowitą n>1
reprezentującą rozmiar domu, wypisz cztery „małe pudełka” przy użyciu następujących kolorów (w notacji 0xRRGGBB):
Green -- 0x00FF00
Pink --- 0xFF00FF (technically magenta)
Blue --- 0x0000FF
Yellow - 0xFFFF00
Jeśli twoja konsola nie ma dokładnie tych kolorów, możesz użyć najbliższego dostępnego (np. Kodów specjalnych ANSI).
Domy są zbudowane z n
_
reprezentacją podłogi i linii dachu. Są otoczone n/2
(zaokrąglonymi) |
postaciami reprezentującymi ściany. Dachy są zawsze 2
wysokie i mają dwa /
na lewej krawędzi, dwa \
na prawej krawędzi i n-2
-
reprezentują szczyt dachu. Gdy domy stają się większe, względny rozmiar dachu staje się coraz mniejszy; to jest zamierzone.
Oto dom wielkości 2
:
/\
/__\
|__|
Oto rozmiar 3
:
/-\
/___\
| |
|___|
Oto rozmiar 7
:
/-----\
/_______\
| |
| |
| |
|_______|
Tak więc biorąc pod uwagę dane 7
wyjściowe, wyprowadzaj cztery domy wielkości, 7
jak opisano powyżej, pierwszy w kolorze zielonym, drugi w kolorze różowym (magenta), trzeci w kolorze niebieskim, a czwarty w kolorze żółtym. Wyjście kolorów w tej kolejności jest ważne.
Przykładowe zdjęcie rozmiaru 3
:
Zasady
- Domy mogą być poziome lub pionowe, o ile istnieje wyraźna separacja między nimi.
- Wiodące / końcowe znaki nowej linii lub inne białe znaki są opcjonalne, pod warunkiem, że domy są odpowiednio ustawione.
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
- Dane wyjściowe mogą być wysyłane do konsoli, zapisane jako obraz itp.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
źródło
0
jest konieczne?#RGB
kody kolorów CSS.Python 2 ,
123121119111109108 bajtów\33
)input()
zamiast definiować funkcjęstr(90+n)
z0<=n<=9
jest"9%s"%n
dwatrzy bajty, używając formatowania łańcucha zamiast konkatenacji łańcuchaWypróbuj online!
Używa kodów ucieczki ANSI do kolorowania domów.
źródło
90
i2,5,4,3
podsumowując, to skutecznie konkatenacja.Excel VBA, 243 bajtów
Anonimowa funkcja bezpośredniego okna VBE, która pobiera dane wejściowe
A1
i wyjściowe z zakresuA2:A5
Wynik
źródło
Japt ,
7976747372 bajtyWypróbuj (Otwórz konsolę przeglądarki, zanim klikniesz „Uruchom”).
Dzięki ETH za pomoc w testowaniu tej ostatniej nocy, gdy pracowałem nad tym na telefonie.
Wyjaśnienie
Domniemane wprowadzenie liczby całkowitej
U
Najpierw tworzymy tablicę 3-cyfrowych kolorów szesnastkowych do odwzorowania. Kod znakowy
²
to 178, więc3#²
daje nam 3178. Konwertujemy go na ciąg base-2 z,¤
a następnie zastępujemy wszystkie wystąpienia1
zf
.ò3
dzieli ciąg na tablicę ciągów o długości 3 iw
odwraca tę tablicę.(Muszę jakoś wymyślić, jak to skrócić).
Mapujemy tablicę za pomocą
£
-X
będąc bieżącym elementem - iOl
logujemy się do konsoli. Prześlemy do tego 2 ciągi znaków, jeden zawierający dom, a drugi CSS.Drugi ciąg jest konstruowany przy użyciu
i
poprzedzającegoX
skompresowanego ciągucolor:#
.%c
Mówi konsolę do używania jako drugi ciąg CSS. Górna linia domu jest budowana poprzez powtórzenie (ç
) czasów-
znaków,U
a następnie wycięcie ich z drugiego elementu (indeksowane 0) za pomocą¤
. Nawiasy klamrowe działają jako swego rodzaju skrót do łączenia łańcuchów.Druga linia jest zbudowana w podobny sposób, tym razem powtarzając czasy
_
postaciU
.Bryła domu jest budowana poprzez
|
dwukrotne powtórzenie znaku,²
a następnie wstawienie spacji powtórzonychU
razy do tego ciągu o indeksie 1. Powstały ciąg jest następnie dodawany do nowej linii (R
), a ciąg ten jest powtarzanyU/2-0.5
razy.Wreszcie ostatnia linia jest budowana w taki sam sposób jak druga.
źródło
Python 2 , 120 bajtów
Wypróbuj online! (pokazuje znaki specjalne zamiast rzeczywistych kolorów, testowane na lokalnym terminalu)
źródło
n=2
.use the closest available
, chociaż wydaje się, że używasz normalnych kolorów zamiast jasnych kolorów. Jasne kolory - myślę - byłyby jednak bliższe pożądanym kolorom.Yabasic , 220 bajtów
Anonimowa funkcja, która pobiera dane wejściowe jako liczbę całkowitą
n
i przekazuje do terminalu 4 kolorowe domy.Brak dedykowanej funkcji powtarzania lub zastępowania łańcucha w yabsic naprawdę szkodzi tej odpowiedzi.
Ta wersja wymaga trybu graficznego i dlatego nie działa na TIO.
Wynik
Poniżej podano wartość wejściową
n=7
.źródło
SmileBASIC, 115 bajtów
Kolejny, który ma również 115 bajtów:
Potrzebne mi kody kolorów (w 4-bitowym RGBI) to 5, 11, 9, 7. Jest to generowane przy użyciu
!!J*8-J*2+5
Jeśli J nie jest13-J*2
równe 0, to jest (daje 11,9,7), a jeśli tak, to wynik to tylko 5.źródło