Ini kue:
_========_
| |
+________+
| |
+________+
| |
+________+
Ini 8 lebar, 3 tinggi, dan 1 dalam.
Anda harus menulis program yang membuat kue dari 3 input. Input pertama mengontrol berapa banyak garis bawah yang ada di tengah dan =
s di atas. Ini kue pertama dengan lebar 10 bukannya 8:
_==========_
| |
+__________+
| |
+__________+
| |
+__________+
Input kedua mengontrol seberapa tinggi kuenya. Ini kue kedua dengan tinggi 4 bukannya 3:
_==========_
| |
+__________+
| |
+__________+
| |
+__________+
| |
+__________+
Perhatikan pengulangan lapisan.
Input ketiga mengontrol seberapa dalam itu. Itu hanya berapa banyak | |
untuk dimasukkan di atas. Inilah kue ketiga dengan kedalaman 2 bukannya 1:
_==========_
| |
| |
+__________+
| |
+__________+
| |
+__________+
| |
+__________+
Anda dapat mencetak spasi spasi tambahan. Kasus uji:
Input: 3
, 3
,3
Keluaran:
_===_
| |
| |
| |
+___+
| |
+___+
| |
+___+
(Saya harap saya tidak pernah mendapatkan kue ini)
Input: 3
, 2
,1
Keluaran:
_===_
| |
+___+
| |
+___+
Input: 5
, 5
,5
Keluaran:
_=====_
| |
| |
| |
| |
| |
+_____+
| |
+_____+
| |
+_____+
| |
+_____+
| |
+_____+
Jawaban:
V ,
25, 20 byteCobalah online!
Hexdump:
Terima kasih kepada @ nmjmcman101 untuk menghemat tiga byte, dan mengingatkan saya pada operator lama yang menyimpan dua byte lagi.
Penjelasan:
a
,,b
danc
tiga argumen.sumber
Ò r|$.
denganÒ|è
untuk beberapa byte. Cobalah online!è
ada. Saya harus memutar otak untuk mengingat apa yang dilakukannya. Tapi itu sangat pintar! Bahkan, menggunakan varian huruf besar,È<char>
mungkin dapat menyimpan lebih banyak byte di beberapa tempat lain juga. Terima kasih sudah mengingatkan saya! :)Arang ,
3426 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Mengambil parameter dalam urutan lebar, kedalaman, tinggi. Penjelasan:
sumber
Mathematica, 167 byte
sumber
PHP> = 7.1, 104 Bytes
Versi Online
sumber
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
.Ruby , 62 byte
Cobalah online!
sumber
Japt ,
5147 byteCobalah online!
Input diambil dalam urutan lebar, tinggi, kedalaman.
sumber
Jelly ,
3029 byte-1 byte beralih dari tambahan ke XOR untuk menerjemahkan antara kolom luar dan dalam, memungkinkan untuk pencarian 5 karakter daripada memiliki dua
_
entri.Program lengkap mengambil tiga argumen program
depth
,height
,width
dan mencetak kue.Cobalah online!
Bagaimana?
sumber
dc , 108 byte
Cobalah online!
sumber
Röda , 65 byte
Cobalah online!
sumber
Java 7 ,
169164158 byteCobalah online!
Tidak Disatukan:
sumber
u=t+u+"+\n" inside the for-loop:
untuk (u = t + u + "+ \ n; a [2] -> 1;) s + = t;`. Tapi jawaban yang bagus, +1 dari saya.05AB1E ,
3331 byteCobalah online!
Penjelasan
sumber
Windows Batch,
211 180163 byteGolf total 48 byte berkat @Neil!
sumber
@
pada setiap baris dan setelahdo
sedikit lebih pendek dari@echo off
. 2.@call set w=%%w%%_
menghindarisetlocal enabledelayedexpansion
. 3. Gunakan@for /l %%p in (2,1,%2)
. 4. IMHO Anda harus menambahkan@set w=
agar kode bekerja lebih dari satu kali.@set w=
, apakah kode tidak akan berfungsi lebih dari sekali?@for /l %%p in (1,1,%1)do
Sepertinya Anda hilang. 2. Ketinggian kue Anda sepertinya salah, paling tidak sepertinya tidak cocok dengan test case ketika saya mencobanya. 3. Jika Anda menjalankan skrip dua kali dalam sesi perintah yang sama maka kue hanya akan semakin luas.@
setelah&
. 2 Jika Anda mengubah loop kedua ke(2,1,%3)
dan loop ketiga ke(1,1,%2)
maka saya pikir Anda dapat menghapusecho +%w%+
baris. 3. Jika saya telah menghitung dengan benar, maka saya pikir Anda harus mengisiw
dengan spasi, bukan_
s, karena itu akan menghasilkan lebih sedikit penggantian. (Saya akan menggunakan@call set w= %%w%%
ruang yang sulit dikenali!)Haskell , 87 byte
sumber
(w#t)d= ...
menyimpan byte.SOGL V0.12 , 25 byte
Coba Di Sini!
Mengharapkan input sebagai lebar, kedalaman, lalu tinggi.
sumber
Python 2,
12412212010592 byte-15 byte dengan menggunakan STDIN bukan argumen program
-13 byte dengan beralih ke Python 2 (untuk
input()
bilangan bulat danprint
pernyataan)-12 byte dari Caird Coinheringaahing
Cobalah online!
Python 3,
124122120105 byteCobalah online!
Jika program lengkap tidak diperlukan:
Python 3,
8784 byteCobalah online!
sumber
Javascript (ES6),
161157 bytesumber
Python 2 , 93 byte
Cobalah online!
sumber
Perl 5 , 85 + 1 (-a) = 86 byte
Cobalah online!
sumber
JavaScript / ES6, 90 byte
Saya baru saja menulis solusi kasar, dan kebetulan mengalahkan jawaban JS yang ada dengan 56 byte kekalahan. Lalu saya bermain golf 11 byte.
Ini demo.
sumber
Kanvas , 23 byte
Coba di sini!
sumber