Berikut adalah array yang mewakili setumpuk kartu standar, termasuk dua Jokers.
[
"AS", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "10S", "JS", "QS", "KS",
"AD", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "10D", "JD", "QD", "KD",
"AH", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "10H", "JH", "QH", "KH",
"AC", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "10C", "JC", "QC", "KC",
"J", "J"
]
Ini disusun dengan cara ini:
- Ada empat setelan; hati, sekop, berlian, dan pentung (H, S, D, C).
- Setiap suit memiliki satu kartu untuk angka 2 hingga 10, ditambah 4 kartu 'gambar', Ace, Jack, Queen, dan King (A, J, Q, K).
- Untuk setiap kombinasi setelan dan nilai, harus ada satu item dalam array, yang merupakan string, dan terdiri dari nilai yang diikuti oleh setelan tersebut (Ruang kosong di antaranya diizinkan).
- Selain itu, ada dua kartu Joker ('J').
- Tolong tulis dalam bahasa apa saja.
- Golf itu! Cobalah untuk menghasilkan output ini dalam jumlah byte terkecil.
- Tidak masalah urutan outputnya.
code-golf
kolmogorov-complexity
AJFaraday
sumber
sumber
2
atau4
atau apa pun sehingga tidak prima lagi.Jawaban:
JavaScript (ES6),
6260 byteCobalah online!
sumber
Bash
4334 byteCobalah online!
sumber
brainfuck ,
200197 byteCobalah online!
Menggunakan satu sel negatif (+1 byte untuk diperbaiki), membungkus sel (banyak byte 'untuk diperbaiki) dan 0 pada EOF (+2 byte untuk menghapus ketergantungan).
Keluaran
Penjelasan:
sumber
05AB1E ,
2827252423 byteCobalah online.
-1 byte terima kasih kepada @Emigna menghapus
S
after"HSDC"
, karenaâ
melakukan ini secara implisit.Penjelasan:
Lihat tip tambang 05AB1E ini (bagian Bagaimana mengompresi string bukan bagian dari kamus? ) Untuk memahami mengapa
.•-Ÿ•
ini"ajqk"
dan.•ôì•
itu"cdhs"
.sumber
brainfuck ,
550504 byteCobalah online!
Jawaban lama, juga online!
sumber
Java 10,
1531511257775 byte-28 byte terima kasih kepada @ OlivierGrégoire .
-50 byte berkat @mazzy .
Cobalah online.
Penjelasan:
sumber
v->{var r="J J";for(var s:"HSDC".split(""))for(var c:"A,2,3,4,5,6,7,8,9,10,J,Q,K".split(","))r+=" "+c+s;return r.split(" ");}
(125 byte)"AJQK2345678910".replace("1?.","$0H,$0S,$0D,$0C,")+"J,J"
dan bagi.$0
itu mungkin di Jawa. TIL, terima kasih. :)APL (Dyalog Unicode) , 29 byte
1 byte disimpan berkat Probie dengan menggunakan
1+⍳9
alih-alih1↓⍳10
Cobalah online!
Ini adalah program lengkap. Di tautan TIO, saya telah mengaktifkan tinju sehingga masing-masing elemen array dapat dibedakan.
Ini adalah output kotak.
'JJ',
2 pelawak bergabung untuk,
bentuk miring dari∘.,⍨
matriks dibuat dengan menggabungkan setiap kombinasi'HCDS'
string ini melawan'AKJQ',
string ini dengan⍕¨
bentuk-bentuk string dari masing-masing1+⍳9
angka-angka 2..10 (1 ditambah kisaran 1..9)sumber
-
indentasi.Befunge-98 (FBBI) , 75 byte
Cobalah online!
Struktur program
Pada awalnya, tumpukan diisi dengan
0
, danj
tidak melompati inisialisasi. Inisialisasi mendorong4 * 13 = 52
, yang merupakan penghitung program. Dalam iterasi berikut, trailing3
menyebabkan pointer melompati bagian ini.Kode yang mencetak 10:
Penghentian:
sumber
R , 65 byte
Cobalah online!
-2 Bytes berkat saran @Giuseppe dan @JayCe
sumber
paste
. @ Giuseppe juga.x<-'J'
di dalamouter
dan kemudian menggunakan kembalix
sebagai variabel dalamc()
pernyataan terluar untuk memotong satu byte: Coba online!Powershell,
63615956 byte-3 byte: terima kasih ConnorLSW
sumber
2..10+'AJQK'[0..4]|%{"$_`H";"$_`S";"$_`D";"$_`C"};,'J'*2
Perl 5 , 41 byte
Cobalah online!
sumber
Python 3 ,
6764 byteCobalah online!
Python 2 ,
78767468 byteCobalah online!
Alt:
Python 2 , 68 byte
disimpan
sumber
print
, tidak bisa kita lakukan[*[a+b for a in['10',*'A23456789JQK']for b in'CHSD'],*'JJ']
dalam 59 byte. Solusi Haskell tidak perlu output ke stdout, mengapa Python?K (ngn / k) , 30 byte
Cobalah online!
!9
adalah daftarnya0 1 ... 8
2+!9
adalah daftarnya2 3 ... 10
$
ke string,
menggabungkan,'/:
menyatukan masing-masing dengan masing-masing hak, yaitu produk Cartesian; biasanya itu,/:\:
atau,\:/:
tetapi di sebelah kanan kita hanya memiliki skalar ("SHDC"
), jadi kita bisa menggunakan'
alih-alih\:
"JJ",/
gabung (concat kurangi) daftar di sebelah kanan menggunakan"JJ"
sebagai nilai awal untuk reduksisumber
MS-SQL, 137 byte
Array nilai dalam SQL dikembalikan sebagai baris kueri yang terpisah. Menggunakan
STRING_SPLIT
fungsi yang diperkenalkan di SQL 2016 .Ini termasuk pelawak dengan menambahkan dua setelan "string kosong" untuk mengambil keuntungan dari "J" yang ada untuk Jack, kemudian menyaring baris yang tidak kita inginkan. Lebih pendek daripada menggunakan
UNION ALL
pernyataan untuk menambahkan pelawak.sumber
Procedure expects parameter 'separator' of type 'nchar(1)/nvarchar(1)'
. Ini juga akan berguna untuk bermain golf jika standarnya adalah koma jika Anda mengabaikan parameter kedua, tetapi tidak mendukungnya juga. Item lain untukGolfSQL
bahasa yang mungkin tidak akan pernah saya tuliskan :)Ruby , 61 byte
Cobalah online!
sumber
->{
...}
? Ini berjalan sendiri dan tidak perlu parameter, jadi tidak perlu menjadi lambdaC # .NET, 114 byte
Port jawaban Java saya (dikreditkan ke @ mazzy ) .
Cobalah online.
Alternatif menarik dari 119 byte oleh @Corak .
Cobalah online.
Jika
System.Collections.Generic.IEnumerable<string>
bukanstring[]
merupakan output yang dapat diterima, trailing.ToArray()
dapat dijatuhkan sehingga menjadi 109 byte .Penjelasan:
sumber
PHP,
1089997 BytesCobalah online!
Cobalah online! (Edit 1)
Kode
Sudah mencoba menggunakan fungsi php murni, tetapi bytecount lebih rendah dengan loop :(
Output (menggunakan
print_r
)Edit
Berkat @ JoKing dengan menyarankan perubahan
explode(" ","H$t S$t D$t C$t")
untuk[H.$t,S.$t,D.$t,C.$t]
sumber
[H.$t,S.$t,D.$t,C.$t]
lebih pendek dari meledak?array_push($arr, $item1,$item2,$item3...$itemN)
seperti itu, bagusSMBF , 169 byte
␀
mewakili byte NUL literal\x00
.Ini adalah solusi naif.
Karena program ini mengandung byte NUL, tidak ada cara mudah untuk menggunakan TIO. Jalankan ini menggunakan juru bahasa Python
sumber
$0.value+='\0'
.Japt,
323026 byteMenguji
sumber
Batch, 118 byte
sumber
J , 41 byte
Cobalah online!
sumber
'J';^:2,;&.>{_13<\'10';;/'23456789AJKQHCDS'
sedikit lebih sederhana tetapi untuk 43. Saya merasa seperti ada lagi yang harus dicukur di sini ... tapi saya tidak bisa melihat caranya.R ,
6766 byteCobalah online!
Hanya satu byte lebih dari solusi golfier digEmAll . Terinspirasi oleh solusi Giuseppe untuk tantangan terkait ini - Giuseppe yang sama yang bermain golf satu byte dengan jawaban!
Saya memposting secara terpisah karena ini pendekatan yang sedikit berbeda mengambil keuntungan dari fakta bahwa 4 bukan pembagi 13 dan bahwa output tidak perlu dalam urutan tertentu.
sumber
C (gcc) ,
126137133 byteCobalah online!
+11 byte menjadi lebih lengkap berkat Jakob.
-4 byte terima kasih kepada Zachary
Sebagian besar penyalahgunaan preprocessor untuk mengompres jas. Mungkin bisa bermain golf, tetapi cukup efisien semua hal dipertimbangkan.
sumber
c
itu bukan "[...] aneh 'fungsi' [...]" melainkan deklarasi array yang disimpan dalam makro. Bentuk output seperti itu setahu saya tidak diizinkan secara default.c
dalam sumber akan membuat salinan baru array di executable yang dihasilkan (pembatasan optimasi). Dengan demikian, kode tersebutchar *a[] = c; char *b[] = c;
membuat dua salinan dalam c. Perilaku ini adalah apa yang Anda harapkan dari suatu fungsi juga.c=0;
sebagai pengajuan yang valid, dilihatc
sebagai fungsi?#define z 0
valid. Alasannya adalah:c=0; c++; x=c;
menghasilkanx == 1
begituc
tidak bertindak seperti fungsi. Sementara#define z 0 c=z; c++; x=z;
itu menghasilkanx == 0
jadiz
bertindak seperti fungsi.z=0;/**/c=z;c++;x=z;
menghasilkanx==0
, dengan demikianz
bertindak seperti suatu fungsi.Javascript (ES6)
777472 byteIni adalah program yang lengkap.
sumber
BTJ,J,${[..."A23456789JQK","10"].map(c=>[..."SDHC"].map(s=>c+s))}BT.splitBT,BT
(di mana BT adalah backtick).C (gcc, dentang), 138 byte
Pendekatan adalah untuk menyandikan urutan dalam array karakter.
Output Sampel
Cobalah online!
sumber
printf
untuk menyingkirkan semuaputchar
s.Oracle SQL, 164 byte
Bukan bahasa golf tapi ...
Cobalah online - SQL Fiddle
sumber
Lua ,
156127138129 byteCobalah online!
Berdasarkan kode Jo King. Seperti yang dia sarankan dalam komentar, jawaban asli saya tidak valid (saya masih belajar bagaimana kode golf bekerja 😬), dan menautkan jawaban yang lebih baik dan valid. Lalu saya membuatnya lebih kecil.
Solusi asli (156 byte):
Saya hanya ingin mengatakan bahwa saya baru dalam hal Golf Code ini, jadi jika saya melakukan sesuatu yang salah, jangan ragu untuk memberi tahu saya. Saya tahu jawaban ini bukan yang terkecil, saya hanya ingin menantang diri saya sendiri.
Jika Anda memiliki saran untuk mengurangi kode saya, Anda juga bisa mengatakannya. :)
sumber
r
? Anda harus mencetaknya ke STDOUT, atau mengubahnya ke fungsi dan kembalir
Perl 6 ,
4342 byteCobalah
Cobalah dari Jo King
Diperluas:
sumber
QBasic 4.5,
114142127 byteCatatan Rilis:
r$
. Semua kode lainnya hampir sama.Output sampel
Jika kita menambahkan potongan ini ke kode kita, kita dapat melihat apa yang dimasukkan ke dalam
r$
:Tapi bagaimana caranya? Baiklah, izinkan saya memberi tahu Anda:
sumber
STDOUT
secara eksplisit dilaranga$
danb$
vars dan menggunakan garis sepertir$(i)=MID$("JQKA2345678910",1+m,1-(m=12))+MID$("CDHS",(i-1)\13+1,1)
PRINT "<output>"
Pyth,
2625 byteDisimpan satu byte berkat hakr14.
Coba di sini
Penjelasan
sumber
+\J+\J
dan+*2]\J
setara dan keduanya 6 byte, tetapi yang terakhir dianggap sebagai bentuk yang lebih baik, karena memungkinkan hingga 10 salinan untuk ditambahkan sebelum byte tambahan diperlukan.+\J+\J
dapat diganti dengan+ B\J
untuk menyimpan satu byte.