Membuat saya s'more ! Saya beri tahu Anda lebar, jumlah kerupuk graham, jumlah cokelat, dan jumlah marshmallow. Sebuah contoh:
Memasukkan:
Lebar: 10
Graham: 3
Chocolate: 2
Marshmallow: 1
.
Keluaran:
GGGGGGGGGG
GGGGGGGGGG
GGGGGGGGGG
CCCCCCCCCC
CCCCCCCCCC
MMMMMMMMMM
GGGGGGGGGG
GGGGGGGGGG
GGGGGGGGGG
Apakah itu mudah? Um ... ya.
Perhatikan bahwa input harus berupa daftar argumen untuk suatu fungsi atau program, bukan string. Anda mungkin memilih Lebar yang pertama, lalu Graham, tetapi pesanan apa pun baik-baik saja.
Kasing uji lengkap jika Anda tertarik.
Cuplikan tumpukan (untuk pengujian, dll.)
Ini untuk menguji output.
var smore = function(width, graham, chocolate, marshmallow){
return ("G".repeat(width) + "\n").repeat(graham) +
("C".repeat(width) + "\n").repeat(chocolate) +
("M".repeat(width) + "\n").repeat(marshmallow) +
("G".repeat(width) + "\n").repeat(graham);
};
Snippetify(smore);
<script src="https://programmer5000.com/snippetify.min.js"></script>
Width: <input type = "number">
Graham: <input type = "number">
Chocolate: <input type = "number">
Marshmallow: <input type = "number">
<button>Try it out!</button>
<pre data-output></pre>
Catatan:
- Anda dapat menyertakan baris tambahan di akhir baris terakhir. Anda juga dapat menggunakan
\
bukan baris baru. - Ini adalah kode-golf .
- Ada pertanyaan? Komentar dibawah:
Jawaban:
Jelly , 11 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Python 2 ,
7348 byteCobalah online!
Membuat versi jawaban yang ditransposisikan, daripada memindahkannya ke format yang benar
zip(*l)
sumber
05AB1E ,
211919 byteCobalah online!
Terima kasih atas pengawasan dan Emigna saya.
(Lihat jawaban Emigna, lebih baik: /codegolf//a/116787/59376 )
sumber
©
di sana.¬¸
denganD
elemen tambahan yang hilang saat Anda zip.JavaScript (ES6), 71 byte
Woohoo, kalahkan 3 jawaban JavaScript lainnya!
Tampilkan cuplikan kode
sumber
MATL , 17 byte
Format input adalah: input pertama
[G, C, M]
, input keduaW
.Cobalah online!
Penjelasan dengan contoh
Pertimbangkan input
[3 2 1]
dan10
.sumber
C # , 204 byte
Golf
Tidak disatukan
Tidak terbaca dibaca
Kode lengkap
Rilis
204 bytes
- Solusi awal.Catatan
sumber
05AB1E ,
1716 byte1 byte disimpan berkat carusocomputing .
Cobalah online!
Urutan input adalah
W, [G,C,M]
Penjelasan
10, [3,2,1]
digunakan sebagai contoh.sumber
"GCMG"S×vy²Nè.D»
kekuatan ajaib-kembar, aktifkan! Bentuk, kode 05AB1E! Juga, pertengkaran dapat ditukar, tapi itu masih 16.Ruby, 47 byte
terima kasih pada ventero
Ruby, 51 byte
Panggil seperti ini:
sumber
->w,g,c,m{puts r=[?G*w]*g,[?C*w]*c,[?M*w]*m,r}
sedikit lebih pendekPowerShell , 49 byte
Cobalah online!
Mengambil input sebagai empat argumen baris perintah
width graham chocolate marshmallow
,, menyimpan argumen first ke$a
dan sisanya menjadi$b
(secara implisit sebagai sebuah array). Loop dari rentang0,1,2,0
. Setiap loop, kami indeks menjadi stringGCM
, melemparkan kembali ituchar
sebagai string, dan mengalikannya dengan$a
(lebar), dan kemudian menggunakan operator-koma,
, mengubahnya menjadi array dengan mengalikan indeks yang sesuai$b
(yaitu, berapa banyak lapisan). Array string yang dihasilkan semuanya ditinggalkan di pipa dan output tersirat, dengan garis baru di antara elemen-elemen.sumber
C,
108105 byteTerima kasih kepada @ Quentin karena telah menghemat 3 byte!
Cobalah online!
sumber
#define F(i,c)for(;i--;puts(""))for(j=w;j--;)putchar(c);
menghemat tiga byte :)Batch, 146 byte
Bergantung pada perilaku yang tidak jelas
echo
karena seringkali dapat mengabaikan simbol di antaraecho
dan teks yang akan digaungkan untuk menciutkan empat loop menjadi loop bersarang.sumber
V , 22 byte
Cobalah online!
Hexdump:
Urutan input adalah
Penjelasan:
sumber
Excel, 104 byte
Oh Boy! Formula yang membutuhkan jeda baris.
A1
memiliki LebarA2
memiliki GrahamA3
memiliki CoklatA4
memiliki MallowJika pra-format diizinkan, maka Anda dapat memformat sel untuk Teks Vertikal dan mempersingkat rumus menjadi 65 byte:
sumber
Jelly , 13 byte
Program diad. Inputnya adalah:
[Graham's, Chocolates, Marshmallows]
,Width
.Cobalah online!
Bagaimana?
sumber
PHP, 85 Bytes
atau
Versi Online
PHP, 96 Bytes
Versi Online
Diperluas
sumber
05AB1E , 14 byte
Kode:
Menggunakan pengkodean CP-1252 . Cobalah online!
Penjelasan:
sumber
Python 2 ,
6757 byte(Sunting: sekarang matriks diizinkan, tidak perlu bergabung dengan baris baru.)
sumber
C # (150 byte)
Tidak Disatukan:
sumber
Java, 138 byte
Cobalah online!
Penjelasan:
sumber
Swift,
138137134130 byteDisimpan 7 byte berkat @Kevin
Dua fungsi yang mengembalikan nilai yang diharapkan:
f
adalah fungsi pembantu danr
merupakan fungsi seperti lamdba aktual yang menghasilkan output. Pemakaian:print(r(10,3,2,1))
Coba lihat!
sumber
var f=String.init(repeating:count:);
). Dan itu tidak menyelamatkan Anda karakter apa pun tetapi tidak ada biaya sehingga mereka berdua harus benar-benarlet
.r
(let r={f(f("G",$0)+"\n",$1)+f(f("C",$0)+"\n",$2)+f(f("M",$0)+"\n",$3)+f(f("G",$0)+"\n",$1)}
)f=String.init(repeating:count:)
...Cembung , 20 byte
Cobalah online!
sumber
JavaScript (ES6), 91 byte
Termasuk trailing newline.
sumber
JS (ES6), 87 byte
x
bertindak sebagai fungsi lambda mandiri. Hasilnya memiliki baris baru yang tertinggal.Coba dalam cuplikan:
Tampilkan cuplikan kode
sumber
C, 90 byte (berdasarkan jawaban Steadybox )
Mengganti nama variabel dan mengeksploitasi operator preprocessor pengetatan untuk mengurangi parameter makro. Saya harap memposting ide ini karena jawabannya sendiri baik-baik saja :)
TIO link
sumber
F # (
14899 byte)Pemakaian:
Tidak Disatukan:
Saya masih baru di F #, jadi jika saya melakukan sesuatu yang aneh atau bodoh, beri tahu saya.
sumber
JavaScript ES6,
696866 byteTerima kasih @Arnauld untuk bermain golf satu byte
Cobalah online!
Penjelasan
Menerima input dalam format kari
(Width)([Graham,Chocolate,Marshmallow])
Menggunakan
.replace(/./g,...)
menggantikan setiap karakter dalam stringGCMG
dengan nilai balik dari fungsi(c,i)=>`${c.repeat(a)} `.repeat(b[i%3])
`${c.repeat(a)} `
membuat setiap baris graham cracker dengan baris baru ditambahkan.repeat(b[i%3])
mengulangi baris ini sebanyak yang diperlukansumber
replace()
akan menghemat byte:a=>"GCMG".replace(/./g,(c,i)=>`${c.repeat(a[0])}\n`.repeat(a[1+i%3]))
JS (ES6), 111 byte
sumber
Mathematica 102 Bytes (100 Karakter)
Mendengar s'mores built-in tidak keluar sampai V12.
Cukup mudah menggunakan ide membangun kolom terlebih dahulu. Nama fungsi yang panjang menghabiskan 35 byte. Simbol satu kotak yang tampak sebenarnya adalah karakter transpose dan akan menempel ke Mathematica.
Penggunaan:
%@{Graham, Chocolate, Marshmallows, Width}
mis%@{3, 2, 1, 11}
sumber
Java 7, 226 byte
ATAU (juga 226 byte ):
Penjelasan:
Kode uji:
Coba di sini.
Keluaran:
sumber
Haskell , 91 byte
Seharusnya cukup jelas. Karena tercantum dalam komentar bahwa matriks karakter diperbolehkan, berikut ini adalah versi 58 byte yang mengembalikan daftar string (satu untuk setiap layer):
sumber