To jest ciasto:
_========_
| |
+________+
| |
+________+
| |
+________+
Ma 8 szerokości, 3 wysokości i 1 głębokość.
Musisz napisać program, który robi ciasto z 3 wejść. Pierwsze wejście kontroluje, ile znaków podkreślenia znajduje się na środku, a =
na górze. Oto pierwsze ciasto o szerokości 10 zamiast 8:
_==========_
| |
+__________+
| |
+__________+
| |
+__________+
Drugie wejście kontroluje wysokość ciasta. Oto drugie ciasto o wysokości 4 zamiast 3:
_==========_
| |
+__________+
| |
+__________+
| |
+__________+
| |
+__________+
Zwróć uwagę na powtórzenie warstw.
Trzecie wejście kontroluje jego głębokość. Właśnie tyle | |
s należy uwzględnić na górze. Oto trzecie ciasto o głębokości 2 zamiast 1:
_==========_
| |
| |
+__________+
| |
+__________+
| |
+__________+
| |
+__________+
Możesz wydrukować końcowe białe znaki. Przypadki testowe:
Wejście: 3
, 3
,3
Wynik:
_===_
| |
| |
| |
+___+
| |
+___+
| |
+___+
(Mam nadzieję, że nigdy nie dostanę tego ciasta)
Wejście: 3
, 2
,1
Wynik:
_===_
| |
+___+
| |
+___+
Wejście: 5
, 5
,5
Wynik:
_=====_
| |
| |
| |
| |
| |
+_____+
| |
+_____+
| |
+_____+
| |
+_____+
| |
+_____+
Odpowiedzi:
V ,
25, 20 bajtówWypróbuj online!
Hexdump:
Dzięki @ nmjmcman101 za zapisanie trzech bajtów i przypomnienie mi o starym operatorze, który zapisał kolejne dwa bajty.
Wyjaśnienie:
a
,b
ic
są trzema argumentami.źródło
Ò r|$.
zÒ|è
kilku bajtów. Wypróbuj online!è
nawet istniał. Musiałem dręczyć mózg, żeby pamiętać, co on robi. Ale to naprawdę sprytne! W rzeczywistości, używając wariantu z dużymi literami,È<char>
prawdopodobnie można zaoszczędzić trochę więcej bajtów w kilku innych miejscach. Dzięki za przypomnienie! :)Węgiel drzewny ,
3426 bajtówWypróbuj online! Link jest do pełnej wersji kodu. Pobiera parametry w szerokości, głębokości i wysokości zamówienia. Wyjaśnienie:
źródło
Mathematica, 167 bajtów
źródło
PHP> = 7,1, 104 bajtów
Wersja online
źródło
for([,$w,$h,$t]=$argv;$i<2*$h+$t;)echo str_pad($e="_|+"[$b=$i++<$t?$i>1:2-($i-$t&1)],$w+1,"= _"[$b])."$e\n";
$b=$i++<$t?$i>1:1+$_++%2
.Rubin , 62 bajty
Wypróbuj online!
źródło
Japt ,
5147 bajtówWypróbuj online!
Dane wejściowe są pobierane w szerokości, wysokości i głębokości zamówienia.
źródło
Galaretka ,
3029 bajtów-1 bajtowe przełączanie z dodatku na XOR w celu translacji między zewnętrznymi i wewnętrznymi kolumnami, umożliwiając wyszukiwanie 5 znaków zamiast posiadania dwóch
_
wpisów.Pełny program biorąc trzy argumenty program
depth
,height
,width
i drukowanie ciasto.Wypróbuj online!
W jaki sposób?
źródło
dc , 108 bajtów
Wypróbuj online!
źródło
Röda , 65 bajtów
Wypróbuj online!
źródło
Java 7 ,
169164158 bajtówWypróbuj online!
Nie golfowany:
źródło
u=t+u+"+\n" inside the for-loop:
(u = t + u + "+ \ n; a [2] -> 1;) s + = t;`. Ale ładna odpowiedź, +1 ode mnie.05AB1E ,
3331 bajtówWypróbuj online!
Wyjaśnienie
źródło
Pakiet Windows,
211 180163 bajtówGrał w golfa w sumie 48 bajtów dzięki @Neil!
źródło
@
na każdej linii i podo
jest nieco krótsze niż@echo off
. 2.@call set w=%%w%%_
unikasetlocal enabledelayedexpansion
. 3. Użyj@for /l %%p in (2,1,%2)
. 4. IMHO należy dodać,@set w=
aby kod działał więcej niż jeden raz.@set w=
, czy kod nie będzie działał więcej niż raz?@for /l %%p in (1,1,%1)do
zaginął. 2. Twoje ciasto wydaje się mieć niewłaściwą wysokość, a przynajmniej nie wydaje się pasować do testowego przypadku, gdy próbuję. 3. Jeśli uruchomisz skrypt dwa razy w tej samej sesji poleceń, ciasto po prostu się poszerzy.@
po&
. 2 Jeśli zmienisz drugą pętlę na(2,1,%3)
i trzecią na(1,1,%2)
, myślę, że możesz usunąćecho +%w%+
linię. 3. Jeśli poprawnie policzyłem, myślę, że powinieneś wypełnićw
spacjami zamiast_
s, ponieważ spowoduje to mniejszą liczbę podstawień. (Użyłbym,@call set w= %%w%%
bo inaczej trudno byłoby dostrzec przestrzeń!)Haskell , 87 bajtów
źródło
(w#t)d= ...
zapisuje bajt.SOGL V0.12 , 25 bajtów
Wypróbuj tutaj!
Oczekuje danych wejściowych jako szerokość, głębokość, a następnie wysokość.
źródło
Python 2,
12412212010592 bajty-15 bajtów przy użyciu STDIN zamiast argumentów programu
-13 bajtów przez przejście do Pythona 2 (do wprowadzania
input()
liczb całkowitych iprint
instrukcji)-12 bajtów od Caird Coinheringaahing
Wypróbuj online!
Python 3,
124122120105 bajtówWypróbuj online!
Jeśli pełny program nie jest wymagany:
Python 3,
8784 bajtówWypróbuj online!
źródło
JavaScript (ES6),
161157 bajtówźródło
Python 2 , 93 bajty
Wypróbuj online!
źródło
Perl 5 , 85 + 1 (-a) = 86 bajtów
Wypróbuj online!
źródło
JavaScript / ES6, 90 bajtów
Właśnie napisałem szorstkie rozwiązanie i zdarzyło mi się pokonać istniejącą odpowiedź JS aż o 56 bajtów. Potem grałem w golfa 11 bajtów.
Oto demo.
źródło
Płótno , 23 bajty
Wypróbuj tutaj!
źródło