Ruby - 125 karakter
146 144 140 137 134 126 125 chars
a,n=$*;h=a[1]?0:1;s=a[0]-h+1
9.times{|t|puts (s..s+n.to_i).map{|i|i%7%4<1||t>4?" | ":"### "
}.join[h..-4].tr t>7?" ":n,"_"}
(Baris baru kedua tidak diperlukan dan ditambahkan hanya untuk menghindari scrollbar pada SO. Titik koma dapat diganti dengan baris baru jika diinginkan.)
Versi Ruby 1.9 berbeda tetapi memiliki panjang yang sama (diganti a[0]
oleh a.ord
dan "_"
oleh ?_
):
a,n=$*;h=a[1]?0:1;s=a.ord-h+1
9.times{|t|puts (s..s+n.to_i).map{|i|i%7%4<1||t>4?" | ":"### "
}.join[h..-4].tr t>7?" ":n,?_}
Telepon dengan
$ ruby piano.rb C 14
molf
sumber
sumber
i%7%4<1||t>4?"_|___":"###__"
kei%7%4&&t<5?"###__":"_|___"
dan simpan 2 karakter. Saya suka%7%4
idiom ituJawaban:
LilyPond, 285
288291310315330333340350karakterSesuai dengan tema musik, berikut adalah solusi dalam bahasa yang dirancang untuk penyusunan huruf partitur musik, LilyPond:
Pemakaian:
$ lilypond thisfile.ly <input.in >output.out 2>/dev/null
sumber
RetroGolf - Applesoft BASIC: 236
239245249257245267285Ditampilkan dalam beberapa baris agar mudah dibaca, tetapi harus satu baris:
Dapat diuji dengan Applesoft BASIC Interpreter ini dalam Javascript atau emulator .
Piano http://img685.imageshack.us/img685/3407/piano2.png
sumber
C # - 315
Saya tetap bermain golf di C # meskipun itu bukan bahasa yang sangat singkat ...
sumber
Python - 164
sumber
t
danu
dan mengalikan dengan 7?Oktaf, 153
154155158159162172180186185188197199200206207209212214215219240244268karakterMengapa hanya menggunakan C atau C # atau F # (atau B atau D) saat Anda dapat memprogram dengan Oktaf penuh?
(dibungkus setiap 60 karakter untuk kejelasan)
Ya ... solusi ini benar-benar menghitung transpos konjugat kompleks dari sebuah string.
Pemakaian:
$ octave -q thisfile.m <input.in >output.out
sumber
C - 197
203207216224232240karakterVersi 194 karakter yang setara ini mengasumsikan buffer overflow baik-baik saja.
sumber
for(j=0; j<=l*5+h; j++)
<- spasi tidak berguna, dan Anda tampaknya telah memasukkannya juga dalam hitungan karakterPostScript: 239
245293312(biasa); 219224225231(ASCII85)Versi biner diperluas melalui pengkodean ASCII85 menjadi program 219 karakter dengan hanya karakter ASCII yang dapat dicetak:
Pemakaian:
$ gs -q -dNOPROMPT -dNODISPLAY -dBATCH thisfile.ps <input.in >output.out
sumber
F #: 224225
, 226, 248, 252, 270, 276, 299, 306KarakterSaya menggunakan modul 2 untuk mendeteksi spasi atau pound. '' adalah 32% 2 = 0 '#' adalah 35% 2 = 1 dan karena bersyarat saya mengembalikan nol untuk salah, saya baru saja mengalikan hasil modul.
Menggunakan <| operator untuk mencukur satu karakter spasi. Overloading operator digunakan untuk menyimpan karakter lain.
asli
sumber
let g s i=for i=1 to i do printfn"%s"(String.replicate 99 s).[t+4*p..t+int(x.[2..])*5+5*p]
sed, 231
235234235237238244268269270276279280282287300307314329338karakterBekerja hingga 99 kunci. Piano standar memiliki 52 tuts putih, jadi ini sudah cukup.
Contoh:
Contoh terakhir mencetak keyboard standar, bersama dengan tombol hitam imajiner di kedua ujungnya.
sumber
PianoScript - 2 karakter
Ini satu baris:
Pemakaian:
Keluaran:
Informasi lebih lanjut tentang bahasa PianoScript dapat ditemukan di sini .
sumber
JavaScript - 195 karakter
Hei, golf itu permainan dimana kamu hanya bertanding melawan diri sendiri kan? :)
Solusi oleh gnarf; porting ke Rhino (dengan perbaikan kecil dan perubahan format) oleh KirarinSnow; selanjutnya terkelupas oleh gnarf; kesalahan dikoreksi oleh KirarinSnow. cache
k[1]
oleh cwallenpoolePemakaian:
$ cp input.in 0; rhino thisfile.js
Versi Demo HTML Cepat: Tes Golf - Menambahkan
readFile=prompt;print=function(a) {document.write("<pre>"+a);}
sumber
s=s[b](1-q,p=s.length-3)
Python3 - 158
Menghemat
input
vsraw_input
. Kalah()
karenaprint
sumber
F #: 355 karakter penting
Semua dalam satu baris:
Diperluas:
sumber
gets
atau setara, kami akan menghemat 22 karakter!SETL
165 karakter; Terjemahan solusi gribblers Python.
sumber
D2 (templat): 331
370400+ 17 karakter(berdasarkan solusi Ruby.)
Terkompresi:
Dijelaskan:
Karena kita tidak bisa melewatkan parameter dari
dmd
input harus dilakukan dalam kode. Hanya mendukung hingga 99 kunci.sumber
Haskell:
212211208 karakterIni masih mengasumsikan huruf yang kompatibel dengan ascii (khususnya, urutan "@ABCDEFG"), tetapi tidak lagi memerlukan Char.ord
sumber
Ruby - 113 karakter
Berjalan dengan argumen baris perintah
Ruby - 118 karakter
sumber
PHP - 208 karakter
Harus ditingkatkan.
Input harus dikirim dalam konstanta bernama PIANO.
sumber
F #
414386372 karakter yang signifikan:Oh, dan satu bonus, skrip ini sebenarnya akan menangani "F # 372" dengan benar - Saya tidak akan mengganggu Anda dengan menempelkannya di sini ...
System.Console.ReadLine () sangat mengecewakan ...
sumber