Ini adalah jendela:
---
| |
---
Mari kita tambahkan beberapa dinding |
. Letakkan dua ruang di kedua sisinya sehingga jendela memiliki banyak ruang.
| --- |
| | | |
| --- |
Sekarang mari kita tambahkan atap dan langit-langit. Untuk menjaga jendela di tengah ruangan, mari tambahkan satu baris lagi di atasnya dan di bawahnya.
---------
| |
| --- |
| | | |
| --- |
| |
---------
Sekarang, tambahkan saja atap. Letakkan tebasan sejauh mungkin, dan backslash sejauh mungkin, dan kami memiliki ini:
/ \
---------
| |
| --- |
| | | |
| --- |
| |
---------
Kemudian gerakkan tebasan ke atas dan ke kanan. Pindahkan backslash ke atas dan kiri:
/ \
/ \
---------
| |
| --- |
| | | |
| --- |
| |
---------
Ulangi sampai kedua garis miring bertemu, lalu tambahkan tanda bintang tempat mereka bertemu:
*
/ \
/ \
/ \
/ \
---------
| |
| --- |
| | | |
| --- |
| |
---------
Dan kamu selesai! Ini adalah rumah 1x1. rumah 2x2 akan terlihat seperti ini:
*
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
-----------------
| | |
| --- | --- |
| | | | | | |
| --- | --- |
| | |
|-------|-------|
| | |
| --- | --- |
| | | | | | |
| --- | --- |
| | |
-----------------
dan rumah 3x2:
*
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
-------------------------
| | | |
| --- | --- | --- |
| | | | | | | | | |
| --- | --- | --- |
| | | |
|-------|-------|-------|
| | | |
| --- | --- | --- |
| | | | | | | | | |
| --- | --- | --- |
| | | |
-------------------------
Tantangan
Anda harus menulis program lengkap yang membutuhkan dua bilangan bulat, x dan y, dan mencetak rumah yang luasnya X kamar dan tinggi Y kamar. Program Anda harus dapat menangani rumah hingga 10x10. IO dapat dalam format apa pun yang masuk akal. Ruang tambahan pada setiap baris diizinkan, dan satu baris tambahan tambahan diizinkan.
Jawaban terpendek dalam byte menang.
f'{name}'
pemformatan string?Python 2,
190181 byteCukup yakin ada banyak hal untuk golf, terutama windows, tapi ini sesuatu untuk saat ini. Input lebar dan tinggi dipisahkan koma, mis
1,2
.Penjelasan cepat dan kasar:
sumber
JavaScript (ES6),
292270238215200 byteTerima kasih @Neil untuk membantu mengurangi ini!
Panggil sebagai:
F(a)(b)
Bangun atap, lalu rakit rumah inti dengan pengulangan tali berlapis.
sumber
join`|\n`
dan sekarang saya berharap saya telah berkomentar pada saat itu. Itu akan menjadi alasan yang baik untuk menambahkan komentar parsial saya yang menyarankan Anda menggunakan9*a
pada titik tertentu, yang saya tidak pernah kirimkan karena terlalu pendek.4*a-1
terlihat salah, saya pikir seharusnya begitu4*a
, ini akan menghemat 4 byte.m-i-1
menjadi--m
.9*a-a
menjadi8*a
.*\n${[...Array(m)].map(...).join
\ n}\n
`` tetapi Anda dapat melakukannya dengan lebih baik dan bergabung dengan string sebelum dan sesudah pada saat yang sama:a=>b=>(p=(c,d=' ')=>d.repeat(c),[p(m=4*a)+`*`,...[...Array(m)].map((c,i)=>p(--m)+'/'+p(i*2+1)+'\\'),y=p(8*a+1,'-')].join`\n`+p(b,`\n`+[x=p(a,'| '),w=p(a,'| --- '),p(a,'| | | '),w,x,y].join`|\n`))
`/${p(i*2+1)}\\`
.C ++, 282 byte, memperbaiki masalah dengan entri sebelumnya:
Keluaran:
sumber
Ruby, Rev B 165 byte
menggunakan satu loop dan beberapa trik golf lainnya.
Ruby, Rev A 179 byte
Tidak disatukan
sumber
| \-'
.\-
tidak berarti apa-apa sebagai urutan melarikan diri, jadi\-
hanya diurai sebagai 2 karakter. Maka tentu saja-
memiliki makna khusus untuktr
, jadi kita perlu string' \-'
untuk windows untuk melarikan diri-
(pemetaan C-> ruang, B->-
dan A->-
karena tidak ada lagi karakter yang tersisa.) Untuk lantai, kita hanya memiliki string'-'
dan dalam hal initr
tampaknya senang menafsirkannya hanya sebagai karakter literal daripada karakter khusus, menugaskan C = B = A ='-'
Semua itu adalah hal yang sulit untuk mulai bekerja. Saya yakin masih ada lagi golf yang akan dilakukan, akan diedit nanti.C ++, 258 Bytes Di Sini
Hasil:
sumber
-
. Lantai-lantai antara dihancurkan dengan|
C #,
361353 byteProgram Lengkap:
sumber
s=""
dapat dimasukkan ke dalam for (j) loop (pertimbangkanj-->0
untuk kondisinya juga, dani++<h
dalam loop terakhir),i=0
dapat dipindahkan keluar dari for loop ke dalam deklarasi, menyimpan byte. Anda juga dapat menyimpan byte dengan menggunakan kembali string kosong yang ditetapkan (sekalim
ditugaskan, Anda dapat menetapkano=m
menyimpan""
. Ganti juga membutuhkan string, sehingga Anda dapat gunakanq
bukan Anda' '
, dan tidak perlu untuk ruang setelah>
saat menyatakanr
. Hal-hal kecil;)VBA, 284 byte
Fungsi Ganti adalah alat yang rapi untuk membuat banyak salinan dengan cara yang sayangnya tidak diinginkan fungsi String.
Meminta efek terbaik di jendela Immediate editor VBA:
?H(8,8)
misalnya.sumber