Pertimbangkan 15 pola kartu bermain ASCII ini (kartu as melalui Joker, dan sisi belakang), di mana X
ada pengganti untuk simbol suit : (mereka terlihat lebih baik dengan jarak garis yang lebih sedikit)
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
|AX | |2X | |3X | |4X | |5X | |6X | |7X | |8X | |9X | |10X | |JX | |QX | |KX | |J | |* * * * * * *|
| ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | |O ------- | | * * * * * * |
| | | | | | | | | | | | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X | | | |X | | | |X | | |K | | | |* * * * * * *|
| | | | | | X | | | | X | | | | | | | | | | | | | | | | X | | | | X | | | | | | | | X | | | | | | | | | | | | | | |E | J | | | * * * * * * |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |X X| | | |X X| | | | | | | | | | | | | | |R | O | | |* * * * * * *|
| | X | | | | | | | | X | | | | | | | | X | | | |X X| | | |X X| | | |X X| | | | X | | | | | | | | J | | | | Q | | | | K | | | | K | | | * * * * * * |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |X X| | | |X X| | | | | | | | | | | | | | | | E | J| |* * * * * * *|
| | | | | | X | | | | X | | | | | | | | | | | | | | | | | | | | X | | | | | | | | X | | | | | | | | | | | | | | | | R | O| | * * * * * * |
| | | | | | | | | | | | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | | X| | | | X| | | | X| | | | | K| |* * * * * * *|
| ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- E| | * * * * * * |
| XA| | X2| | X3| | X4| | X5| | X6| | X7| | X8| | X9| | X10| | XJ| | XQ| | XK| | R| |* * * * * * *|
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
Tulis program yang menggunakan string yang menunjukkan urutan kartu yang dipisahkan ruang menggunakan ...
A 2 3 4 5 6 7 8 9 10 J Q K
diikuti oleh salah satuC D H S
(untuk klub, berlian, hati, dan sekop) untuk 52 kartu standar.- Satu
R
untuk Joker. - Satu
B
untuk sisi belakang (kartu menghadap ke bawah).
Jadi string B AS KH 10C R JD
menunjukkan kartu menghadap ke bawah, diikuti oleh kartu as sekop, diikuti oleh raja hati, diikuti oleh sepuluh klub, diikuti oleh Joker, diikuti oleh jack berlian.
Program Anda perlu mencetak kartu bermain ASCII yang sesuai untuk stdout, menggantikan X
dengan simbol suit yang sesuai.
Sebagai contoh, output untuk B AS KH 10C R JD
menjadi
------------- ------------- ------------- ------------- ------------- -------------
|* * * * * * *| |AS | |KH | |10C | |J | |JD |
| * * * * * * | | ------- | | ------- | | ------- | |O ------- | | ------- |
|* * * * * * *| | | | | | |H | | | |C C| | |K | | | | |D | |
| * * * * * * | | | | | | | | | | | C | | |E | J | | | | | |
|* * * * * * *| | | | | | | | | | |C C| | |R | O | | | | | |
| * * * * * * | | | S | | | | K | | | | | | | | K | | | | J | |
|* * * * * * *| | | | | | | | | | |C C| | | | E | J| | | | |
| * * * * * * | | | | | | | | | | | C | | | | R | O| | | | |
|* * * * * * *| | | | | | | H| | | |C C| | | | | K| | | D| |
| * * * * * * | | ------- | | ------- | | ------- | | ------- E| | ------- |
|* * * * * * *| | SA| | HK| | C10| | R| | DJ|
------------- ------------- ------------- ------------- ------------- -------------
Anda dapat mengambil input dari stdin atau menulis fungsi yang mengambil string.
Pengajuan dengan jumlah karakter terpendek akan menang.
Bonus: Kurangi 30 dari jumlah karakter Anda jika Anda menggunakan simbol simbol Unicode hitam ♣ ♦ ♥ ♠
alih-alih C D H S
dalam output Anda. (Input selalu digunakan C D H S
.)
Catatan
- Mungkin ada lebih dari 54 kartu dalam string input dan mungkin ada duplikat kartu apa pun.
- Seharusnya tidak ada output jika inputnya adalah string kosong.
- Seharusnya tidak ada spasi tambahan selain (opsional) dua yang membentuk sudut kanan kartu terakhir.
- Anda dapat menganggap input tersebut valid.
- Pembaruan: Label kanan bawah pada kartu standar telah dibalik sehingga nilainya ada di sudut. Label Joker kanan bawah tidak berubah.
sumber
Jawaban:
JavaScript (E6) 542 (572 - bonus 30)
553 564 5763 macam bentuk:
The
z
String (terkompresi) berisi blok bangunan dasar untukCatatan bonus Kode untuk memenangkan 30 poin bonus adalah 29 karakter.
Uji di konsol FireFox / FireBug
Keluaran
Bukan kode golf
sumber
C # - 906
Program C # yang agak besar dan sederhana yang mengambil input dan output baris perintah ke output standar. Mungkin ada banyak yang masih bisa bermain golf, saya telah melihat beberapa byte yang membosankan saat menulis ini, tetapi itu harus menunggu. Saya tidak berpikir saya akan pergi untuk bonus karakter suit Unicode.
Kode golf:
Contoh output untuk
cardGolf.exe 7H QH 3S B R
Sebagian besar rendering dilakukan dengan
P
metode anonim, yang mengambil posisi, panjang, string, dan lebar, dan merender persegi panjang dari ujung string ke ujung. Misalnya, bagian belakang kartu baru saja"* "
diulang. TheT
metode anonim adalah versi modifikasi dari yang saya digunakan untuk tugas sebelumnya, yang membuat banyak persegi panjang. Namun, ini agak besar, dan hanya akan memungkinkan saya untuk membuat batas dan latar belakang dalam lebih sedikit byte, yang mungkin tidak sepadan. Versi striped downT
adalahW
yang membuat sel daripada persegi panjang, dan juga tidak digunakan, tetapi versi inline digunakan untuk membuat kartu bernilai 2 sampai 10. Perhatikan bahwa kode yang tidak digunakan adalah dihapus untuk jumlah byte, saya meninggalkannya karena saya mungkin akhirnya menggunakannya, dan saya menggunakannya untuk pengujian.Program hanya loop melalui setiap baris output (13 dari mereka) dan kemudian membuat setiap kartu secara bergantian, dan kemudian mengekstrak 1 slice dari itu, sehingga setiap kartu diberikan secara keseluruhan 13 kali. Untuk tujuan menjiplaknya, setiap kartu diperlakukan sebagai blok 16 kali 13, dan saya memotong setiap garis output untuk menghilangkan spasi tambahan (ruang sudut dilepaskan).
Kode yang diformat, dengan komentar dan konsep / kode pengujian:
sumber
PowerShell , skor 442 = (
509495472 byte = (skrip 156 + 316 arsip) - 30 bonus)Cobalah online!
Belum dibuka:
Skrip Powershell untuk membuat arsip tar
t
(lihat TIO):sumber