Kasino menggunakan setumpuk kartu berikut. ( *
Adalah salah satu pakaian kartu D
, S
, C
atau H
.)
_________ _________ _________ _________ _________
| | | | | | | | | |
| | | | | * | | * * | | * * |
| | | * | | | | | | |
| * | | | | * | | | | * |
| | | * | | | | | | |
| | | | | * | | * * | | * * |
|_________| |_________| |_________| |_________| |_________|
_________ _________ _________ _________ _________
| | | | | | | | | |
| * * | | * * | | * * | | * * | | * * |
| | | | | * * | | * * | | * * |
| * * | | * * * | | | | * | | * * |
| | | | | * * | | * * | | * * |
| * * | | * * | | * * | | * * | | * * |
|_________| |_________| |_________| |_________| |_________|
_________ _________ _________
| | | | | |
| * * | | * * | | * * * |
| * * | | * * * | | * * |
| * * * | | * * | | * * * |
| * * | | * * * | | * * |
| * * | | * * | | * * * |
|_________| |_________| |_________|
Setelah setiap malam, deck lama dibuang, dan dipotong menjadi dua untuk menghindari penggunaan kembali. Akibatnya, kasino memiliki ruang besar yang penuh dengan potongan kartu.
Sayangnya ekonomi buruk, dan kasino dalam kesulitan keuangan. Hal paling masuk akal untuk menghemat uang tampaknya adalah daur ulang, sehingga pemilik kasino memutuskan untuk merekatkan kembali kartu lama. Jadi mereka menyewa tim untuk membangun mesin yang akan melakukan ini.
Anda adalah bagian dari tim, dan tugas Anda adalah membantu mengidentifikasi kartu.
Tulis program atau fungsi yang akan mengambil gambar seni ASCII dari setengah kartu dalam bentuk string, dan akan mengembalikan string dari kartu apa itu.
Input adalah string 11x5, plus karakter pemisah baris (CR, LF atau CRLF, Anda hanya perlu mendukungnya). Anda dapat mengasumsikan spasi spasi di akhir setiap baris input, jika perlu. Input tidak akan berisi karakter yang tidak valid (selain dari _|-HSCD
spasi dan pemisah baris).
Setengah kartu akan terlihat seperti ini:
_________
| |
| H H |
| H H H |
---H---H---
yang harus diidentifikasi sebagai Ratu Hati:
H12
Kasino ini memiliki anggaran terbatas, jadi ini kode golf: program terpendek yang menang.
sumber
H 12
?Jawaban:
CJam,
16151312 byteUji di sini.
Penjelasan
Ide dasarnya adalah memanipulasi string sedemikian rupa sehingga kita dapat membuat enkode run-length run-in CJam bekerja untuk kita.
Mari kita lihat sebuah contoh (contoh dari pertanyaan). String input adalah
Kami ulangi itu dua kali:
Dan hapus baris terakhir:
Lalu kita urutkan string ini. Sekarang akan ada banyak baris baru di awal, dan kemudian ini (disingkat oleh beberapa ruang untuk menghindari scrollbar horizontal):
Meskipun karakter suit akan bervariasi, itu akan selalu menjadi huruf besar, ditemukan di run keempat dari string yang diurutkan (akuntansi untuk baris baru). Ketika kita menjalankan-panjang encode ini kita dapatkan
Jadi yang perlu kita lakukan adalah memilih elemen keempat dan membalikkannya.
Berikut ini adalah rincian kode aktual:
sumber
Pyth (versi terbaru), 16 byte
Cobalah secara online: Pyth Compiler / Executor
Penjelasan:
Pyth 4.0, 13 byte
Pyth memiliki build dalam run-length-encoding. Tetapi hanya untuk waktu yang singkat. Jika seseorang ingin mencoba ini: Klon repo Pyth dan checkout komit 6a6dccd.
Program ini bekerja hampir sama dengan solusi CJam Martin.
sumber
CJam, 22 byte
Melihat lebih banyak opsi golf di sini. Inilah cara kerjanya:
Cobalah online di sini
sumber
Python 2,
806866 byteCoba di sini
Gandakan input, temukan semua huruf di semua kecuali baris terakhir (pasangan pertama di baris terakhir tidak boleh huruf), lalu cetak huruf pertama dan berapa banyak.
Masukan :
' _________\n| |\n| H H |\n| H H H |\n---H---H---'
Keluaran :
H12
Versi sebelumnya yang menggunakan regex (68):
Terima kasih kepada Sp3000 untuk bantuan golf.
sumber
i=input()*2;s="CDSH";r=[i[:-9].count(x)for x in s];n=sum(r);print s[r.index(n)]+`n`
APL, 39 byte
Saya yakin ini bisa dibuat lebih pendek, tapi ini awal.
Ini menciptakan fungsi bernama monadik yang menerima string input dan mengembalikan string yang berisi nilai dan kartu yang sesuai. Anda dapat mencobanya secara online !
Penjelasan:
Saran diterima seperti biasa!
sumber
(⊃,≢)'HDCS'∩⍨¯11↓,⍨
?5⌷{⍺,≢⍵}⌸¯11↓,⍨⍞
J, 26 byte
Pemakaian:
Membaca kode dari kiri ke kanan:
4{~.
).+/
) jumlah karakter yang terjadi total dalam input ([
) dan input tanpa 9 karakter terakhir (_9}.[
).]
) ke representasi string jumlah yang dihasilkan (":
).sumber
Perl, 75 byte
Versi tidak disatukan
sumber
Julia, 58 byte
Ini menciptakan fungsi tanpa nama yang mengambil string sebagai input dan mengembalikan setelan dan nilai kartu. Untuk menyebutnya, berikan nama, mis
f=s->(...)
.Penjelasan + tidak dikumpulkan:
Saran diterima seperti biasa!
sumber
Bash + coreutils, 73
sumber