Ini hari Jumat dan saya lelah, jadi mari kita lakukan yang cepat! Jangan ambil input, namun Anda harus mengeluarkan semua tiga belas kartu bernomor berbeda dalam setumpuk kartu standar. Anda harus mengeluarkan 2 melalui Ace (Suit agnostik).
Setiap kartu memiliki bagian atas yang dilambangkan dengan spasi
dan sepuluh _
dan ruang lainnya
.
Baris kedua dari atas dilambangkan dengan a /
dan sepuluh spasi
dan a\
Baris ketiga sama dengan semua baris ish-tengah kecuali karakter yang menunjukkan nilai kartu muncul dua spasi ke kanan (jika di atas) atau dua spasi ke kiri (jika di bagian bawah) tepi.
Setiap baris tengah ish adalah sederhana |
dan sepuluh spasi
dan satu lagi|
Akhirnya baris terakhir adalah a \
dan sepuluh _
dan akhirnya a/
Jika nilainya multi-digit, lebar keseluruhan berdasarkan tinggi kartu tidak boleh berubah. (yaitu 10 tidak akan membuat sisi kartu lebih lebar)
Contoh Raja:
__________
/ \
| K |
| |
| |
| |
| |
| |
| K |
\__________/
9 Contoh
__________
/ \
| 9 |
| |
| |
| |
| |
| |
| 9 |
\__________/
10 Contoh
__________
/ \
| 10 |
| |
| |
| |
| |
| |
| 10 |
\__________/
Keluarkan mereka secara berurutan dari yang terkecil hingga yang terbesar (Aces tinggi!).
Ini adalah kode-golf sehingga kode terpendek menang.
Selamat bersenang-senang dan bersenang-senang di akhir pekan!
sumber
Jawaban:
PowerShell v2 +,
120116114108 byteMembangun jangkauan
2..10
dan melakukan penggabungan array denganchar
-arrayJQKA
. Umpan itu ke dalam satu lingkaran|%{...}
. Setiap iterasi, kami set$z
sama dengan jumlah ruang yang sesuai (berdasarkan apakah kami di kartu10
atau tidak), ditetapkan$x
ke10
garis bawah, dan diatur$y
ke10
ruang.Kemudian, kami memulai penempatan kami. Kita akan meningkatkan standar
Write-Output
untuk menyisipkan baris baru di antara elemen-elemen pipa, jadi kita hanya perlu memasukkan barang-barang di pipa. Perhatikan bahwa di sebagian besar tempat, kami menggunakan baris literal alih-alih menutup dan membuka kembali string kami untuk menghemat beberapa byte.Yang pertama hanya
$x
dengan dua spasi, kemudian$y
dengan dua garis miring, lalu| $_$z|"
pipa, spasi, jumlah ruang yang sesuai, dan pipa lainnya. Ini membentuk bagian atas kartu hingga dan termasuk garis nilai.Kita harus titik koma di sini, karena selanjutnya menggunakan array. The
,"|$y|"*5
membangun string-array, dengan koma operator, pipa dengan ruang - pada output, setiap elemen dari array ini mendapat baris baru secara gratis.Kemudian,
"|$z$_ |
untuk menandai nilai bawah, dan akhirnya$x
dengan garis miring untuk bagian bawah kartu.Cuplikan Keluaran
sumber
Python,
161160156149 byteSatu byte disimpan oleh Shebang
Ini bisa menggunakan beberapa pekerjaan tetapi ini dia:
Penjelasan
Kami membuat daftar semua peringkat dalam menggunakan
map(str,range(2,11)
. Kemudian kita mengulang setiap peringkat dan membuat kartu.Kami membuat bagian atas kartu:
Kemudian pangkat berada di sebelah kiri:
Kita gunakan
.ljust
karena10
panjangnya dua dan yang lainnya lebar.Lalu kami mencetak 5 baris di tengah:
dan peringkat bawah:
Akhirnya kami mencetak bagian bawah kartu:
sumber
v="_"*10
dan mengganti instance tersebut akan menghemat byte lain!JavaScript (ES6), 151 byte
sumber
Perl,
128117111 byte6 baris baru literal masing-masing menghemat 1 byte. Ini tidak dapat dijalankan langsung dari baris perintah karena tanda kutip tunggal pada baris 2 dan 4 untuk menghemat 1 byte dengan tidak harus melarikan diri backslash.
Sunting: Saya menempatkan Ace di awal, tetapi seharusnya di akhir. Itu tidak mengubah jumlah byte.
Sunting 2: -11 byte: Singkirkan beberapa pernyataan yang tidak perlu dan tambahkan baris baru literal lainnya. Semuanya sekarang di-output melalui satu printf.
Sunting 3: -5 byte berkat @Ton Hospel. Tetapi untuk beberapa alasan, saya mendapatkan 111 byte daripada 112 di rumah bila dibandingkan dengan di tempat kerja, jadi saya akan menghitung byte yang diberikan oleh komputer rumah saya.
sumber
_ x10
alih-alih"_"x10
. Jugaqw
hampir tidak pernah berguna. dalam golf. Gunakan tanda kutipJ,Q,K,A
sebagai gantinya (bahkan tidak termasuk()
)Can't locate object method "_" via package "x10" (perhaps you forgot to load "x10"?) at shuffle.pl line 1.
Tidak yakin mengapa, tapi saya tidak akan melawan penerjemah :(\n
oleh baris baru):printf' %2$s\n/%3$10s\\n| %-9s|\n'.'|%3$10s|\n'x5 .'|%1$9s |\n\%s/\n',$_,"_"x10for 2..10,J,Q,K,A
PHP, 233 Bytes
sumber
if
dapat diganti dengan$k>9&&$c[29]=$c[113]=0&$c[112]=1;
, untuk menghemat beberapa byte. Notepad ++ juga mengatakan bahwa kode Anda sebenarnya berukuran 241 byte. Saya tahu 1 byte tersebut berasal dari baris baru. Tapi yang lain adalah misteri bagiku.///,
182180 byteCobalah online!
-2 byte berkat m-chrzan
sumber
+
pengganti hanya 5_
detik, dan kemudian memiliki dua+
detik di mana Anda memiliki satu+
sekarang.Python 3.5, 110 byte
Cetakan
' %s\n/%%11s\n'%u%'\\'
manau
adalah'_'*10
'| %-2s %2s |\n'
, yang masing-masing memiliki dua slot pemformatan string. Yang pertama dan terakhir diisi dengan nilai kartu, dan sisanya dengan spasi tanpa efekFitur unpacking baru Python 3.5 digunakan di dua tempat. Daftar label
[*range(2,11),*'JQKA']
membongkar angka dan huruf menjadi satu daftar. Dan, tuple(c,*' '*12,c)
membongkar dua belas entri spasi ke tengah.sumber
Scala, 161 byte
sumber
Batch, 236 byte
Saya mencoba bermain golf ini dengan tiga cara berbeda tetapi berakhir dengan jumlah byte yang sama setiap kali ...
sumber
05AB1E ,
717068666564 byteMenggunakan pengodean CP-1252 .
Tautan yang sedikit dimodifikasi karena
…
tidak berfungsi dengan baikÿ
pada TIO atm.Cobalah online!
Penjelasan
TL¦"JQKA"S«
mendorong daftar[2,3,4,5,6,7,8,9,10,J,Q,K,A]
Kami kemudian mengulang setiap nilai kartu dengan
v
ð'_Tשð
konstruk konstruk" __________ "
ðT×…/ÿ\
konstruk"/ \"
9yg-ð×y"| ÿÿ|"Â
membangun 2 baris dengan nilai kartu (baris kedua adalah terbalik pertama)ðT×…|ÿ|5×
membangun 5 baris formulir"| |"
Lalu kita
®…\ÿ/
membangun baris bawahsumber
V , 87 byte
Cobalah online!
Karena ini mengandung beberapa unsintables, berikut adalah hexdump:
sumber
PHP,
135131158134 byteMudah-mudahan, saya dapat menemukan cara untuk mempersingkat ini lebih sedikit.
Ini memanfaatkan
printf
untuk mengulang beberapa karakter dan memformat semuanya dengan baik.Versi lama:
Bukan sepotong kecantikan, tapi berhasil!
Terima kasih kepada Jörg Hülsermann untuk mendeteksi bug dan mengizinkan saya menggunakan bagian dari kodenya, yang menguranginya sebesar 4 byte! Dan untuk menemukan bug yang fatal.
sumber
10
disadap. Apakah saya boleh menggunakan array Anda? Menggunakan[2,3,4,5,6,7,8,9,10,J,Q,K,A]
bukannya membagi itu menghemat saya 4 byte. Jika Anda tidak mengotorisasi itu, saya akan mengerti.$C$S
$C".($P=substr($S,$C>9))."
menangani ruang dengan nilai 10 dan bukannya$S$C
Anda butuhkan$P$C
Ruby, 115 byte
Penggunaan cukup mudah
printf
.sumber
Racket 327 byte
Tidak Disatukan:
Pengujian:
Keluaran:
sumber
Java 7, 287 byte
Ok, ini jelek dan tidak terlalu efisien, tetapi berfungsi .. Itu
10
sebagai kasus khusus dengan ruang sebelum di atas dan setelah di posisi bawah benar-benar kacau dengan semua orang ..Tidak digabungkan & kode uji:
Coba di sini.
Keluaran:
sumber
R, 175 byte
Jawaban yang cukup kompetitif di R kali ini untuk tantangan ascii-art dan pasti harus golf.
Cobalah R-biola
Tidak diikat dan dijelaskan
Aspek yang paling menarik di mana beberapa byte disimpan adalah penugasan baris ketiga:
Karena ada
8
spasi total antara karakter yang menunjukkan nilai kartu dan final|
(kecuali untuk10
) kita dapat mengulangi9
spasi dan mengurangi jumlah karakter dalam kartu yang dicetak saat ini.Dengan menyimpan setiap karakter di
3rd
baris sebagai elemennya sendiri dalam vektor string,r
kita dapat membalikkan vektor dan menggunakannya kembali untuk9th
baris.sumber
C #, 385 Bytes
Tantangan Seni ASCII pertama saya - itu menyenangkan!
Golf:
Tidak Disatukan:
sumber
Sebenarnya , 91 byte
Cobalah online!
Penjelasan
Bagian 1: mengatur daftar nilai wajah:
Bagian 2: membuat kartu (baris baru diganti dengan
\n
agar mudah dibaca):sumber