Ponieważ jest sobota (UTC) i jestem głodny, chciałbym kawałek pizzy. Dam ci zamówienie i chciałbym pyszną, gorącą pizzę ascii-art . Do wyzwania?
Drive-Thru
Złożę moje zamówienie, gdziekolwiek jest twój drive-thru, niezależnie od tego, czy jest to STDIN, parametr funkcji, argument wiersza poleceń, ale nie zamierzam umieszczać go w zmiennej dla ciebie. (Wyrażenia funkcji JS muszą być przypisane do zmiennej).
Kolejność
Moje zamówienie będzie miało 2 części. Pierwsza będzie dodatnią, niezerową liczbą całkowitą od 3
do 6
. To jest rozmiar mojej pizzy. Na przykład 6
pizza wielkości bez dodatków wyglądałaby następująco:
/=====\
/ \
| |
| |
\ /
\=====/
Rozmiar 5
:
/====\
/ \
| |
\ /
\====/
Rozmiar 4
:
/===\
| |
| |
\===/
Rozmiar 3
/==\
| |
\==/
Polewy
Moje dodatki będą ciągiem wielkich liter. Oto możliwe wartości:
P - Pepperoni S - Kiełbasa N - piNeapple J - Jalapenos B - Papryki bananowe C - baCon
Musisz gdzieś je dopasować do pizzy. Jeśli zamówię rozmiar 4 PSPCJ
, a następnie jest to prawidłowy wynik:
/===\
|PSPCJ|
| |
\===/
Tak to wygląda:
/===\
|P P J|
| S C |
\===/
I to:
/===\
| |
|PSPCJ|
\===/
Nie jestem wybredna, jeśli chodzi o to, gdzie moje dodatki są na pizzy, o ile nie są na skórce ani na sobie.
Okno odbioru
Pójdę do wielu miejsc, aby odebrać moją pizzę, w tym STDOUT, plik, wartość zwracaną przez funkcję, ale nie zmienną.
Dodatkowe rzeczy
- Standardowe luki zabronione
- Jest to oznaczone kodem golfowym, więc wygrywa najkrótsza odpowiedź w bajtach!
- Nie martw się o nieprawidłowe dane wejściowe (polewy> miejsce na pizzę itp.)
- Zobacz moją odpowiedź (JS ES6) poniżej jako przykład (mam nadzieję, że możesz to zrobić lepiej)
̶5̶,̶ ̶N̶N̶N̶
̶ jest również ważna wejściowych ̶ (lub powinien to być ̶̶5̶,̶ ̶N̶
̶ zamiast) ̶ ̶ Ponadto, gdzie są grzyby ..? :( EDYCJA: Nieważne o pierwszym pytaniu, widzę, że twoje przypadki testowe mają 2xP
.Odpowiedzi:
Pip ,
878175 bajtów74 bajty kodu, +1 dla
-l
flagi.Pobiera dane wejściowe jako argumenty wiersza polecenia. Wypróbuj online!
Podejście
e
to górny rząd, taki jak/=====\
. Jeśli go odwrócisz, będzie to również dolny wiersz.y
jest lewą granicą, na przykład["/" "|" "|" "\"]
. Jeśli go odwrócisz, będzie to również prawy brzeg.Następnie konstruujemy środek, biorąc
b
polewy, wypełniając je spacjami na długość(a+1)*(a-2)
(gdziea
jest rozmiar) i grupując je w listę wierszy.Na koniec drukujemy górny wiersz ze spacją wiodącą; połączyć środek pomiędzy
y
lewą iRVy
prawą stroną i wydrukuj ją; i wydrukuj dolny wiersz ze spacją wiodącą.źródło
Python 2 ,
202,198,190,177,162,157,146 bajtówWypróbuj online!
źródło
'\\'
,'|
”, a'/
do zmiennych do golfa od kilku bajtów? W ten sposób bardzo ogoliłem się z odpowiedzi JS.(n-1)
z(--n)
, żen>4
szn>3
,(n+1)
z(n+2)
, a ostateczna(n-1)
zn
ogolił 4 bajty?--
operatora!Python 3 ,
224213195 bajtówWypróbuj online!
źródło
JavaScript (ES6),
170161 bajtówZaczyna się od zniekształconej pizzy o szerokości 2 i wysokości 5 i rozciąga ją poziomo i dostosowuje odpowiednio do pionu, a następnie zastępuje wnętrze dodatkami lub spacjami po ich wyczerpaniu.
źródło
JS (ES6),
257255249248246244 bajtówNazwij to jak
m(4)("PS")
1 pepperoni i 1 kiełbasę. Prawdopodobnie można grać w golfa więcej.źródło
Węgiel drzewny , 37 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Podaj rozmiar pizzy.
Zacznij drukować górę pizzy.
Jeśli pizza ma jeden z większych rozmiarów, dodaj więcej na górze i na boku.
Wydrukuj więcej boku pizzy.
Uzupełnij lewą połowę pizzy poprzez odbicie z możliwym zachodzeniem na siebie.
Uzupełnij pizzę odbiciem ze zmiennym zachodzeniem na siebie.
Wprowadź dodatki i podziel je na kawałki, aby zmieściły się w pizzy.
źródło