Memasukkan:
Pertama
Array terdiri dari tiga kartu yang mewakili kartu yang dimainkan oleh setiap pemain yang diformat seperti
[JD][TH][9S]
Mewakili
Jack of Diamonds, 10 of Hearts, and Nine of Spades.
Karena Anda selalu duduk berhadapan dengan rekan setim Anda di Euchre, elemen kedua mewakili permainan rekan setim Anda. Di sini, itu TH
.
Kedua
A Single Char, String, dll mewakili setelan truf diformat seperti
S, D, C, H
mewakili
Spades, Diamonds, Clubs, Hearts
Ketiga, susunan empat kartu yang mewakili bentuk tangan Anda
[KD][JC][QH][AS]
mewakili
King of Diamonds, Jack of Clubs, Queen of Hearts, Ace of Spades
Objektif:
Diberikan tiga input, output kartu terbaik untuk ditambahkan ke kartu yang telah dimainkan sehingga memenuhi kriteria berikut:
- Dibutuhkan tangan jika bisa, jika tidak mengeluarkan kartu yang paling tidak berharga
- Dibutuhkan bantuan jika bisa, namun itu tidak akan mengalahkan rekan setim Anda kecuali jika hal itu tidak dapat dihindari
- Jika dapat mengambil tangan, ia melakukannya dengan menggunakan kartu yang paling tidak berharga. (Jika Anda memiliki kartu As dan seorang ratu yang dapat memenangkan tangan, Anda bermain ratu).
- Setiap permainan harus mengikuti seperti yang dipersyaratkan oleh aturan di bagian bawah.
Format keluaran seperti [JD]
Memformat
A - Ace
K - King
Q - Queen
J - Jack
T - Ten
9 - Nine
H - Hearts
D - Diamonds
S - Spades
C - Clubs
TH, 9D, JD, QH, AD, 9C, TC
Contohnya
Dalam: [QD][KD][9C]
, "C"
,[AH][JH][QH][9H]
Di luar: 9H
Alasan: Karena klub adalah kartu truf, 9C memenangkan kartu, kami tidak dapat mengambil kartu sehingga kami harus membuang kartu terendah kami, di sini 9H
Dalam: [QD][KD][AD]
, "H"
,[AH][JH][QH][9H]
Di luar: 9H
Alasan: Karena Hati adalah truf, Ace of Diamonds saat ini memenangkan tangan, kita dapat mengalahkan tangan sehingga kita harus menggunakan kartu terendah kita, di sini 9H
Dalam: [QD][KD][TD]
, "D"
,[AD][JH][QH][9D]
Di luar: 9D
Alasan: Karena berlian adalah truf dan kami saat ini memenangkan tangan, kami harus memainkan 9D karena mitra kami saat ini memenangkan tangan, jadi kami ingin memainkan 9D
lebih dari yangAD
Dalam: [QH][KH][JH]
, "D"
,[AD][JD][QH][9D]
Di luar: QH
Alasan: Karena Berlian adalah truf, lawan kita menang dengan Bower kiri. JH
Kita memiliki bower yang tepat tetapi tidak dapat mengalahkannya karena QH dipimpin dan kita harus mengikuti,QH
Dalam: [QH][KH][JH]
, "D"
,[AD][JD][QC][9D]
Di luar: JD
Alasan: Karena Berlian adalah truf, lawan kita menang dengan Bower kiri. JH
Kita memiliki bower yang tepat dan karena kita tidak punya, Diamonds
kita dapat mengalahkannya denganJD
Kekuatan Kartu Euchre
Jika Hati adalah truf:
JH
JD
AH
KH
QH
TH
9H
Lihat Aturan Euchre jika Anda tidak terbiasa dengan kekuatan kartu yang berbeda di Euchre
Karena ini adalah Code-Golf, kode terpendek akan menang!
Semoga berhasil dan selamat bersenang - senang!
sumber
9D
hasilnya telah menetapkan hati sebagai kartu truf (meskipun saya tidak berpikir itu mempengaruhi hasil ini).Jawaban:
Perl -
557 532 511 490 482 384363Bagaimana itu bekerja
Cobalah online!
Pertama membaca args dan menemukan setelan kiri-bauer (jack dengan warna yang sama seperti truf) dengan pencarian hash:
Kemudian menggabungkan semua kartu menjadi satu string dan melakukan beberapa penggantian, membuat kartu secara alami mengurutkan dalam urutan yang benar untuk euchre:
Di akhir blok ini, string kartu kemudian dibagi pada tanda kurung, yang membangun larik semua kartu di mana:
indeks 0 = kartu utama lawan
indeks 1 = kartu rekan satu tim
indeks 2 = kartu lawan lain
indeks 3-6 mewakili tangan
Suit utama diuraikan dari kartu pertama, tetapi suit berubah menjadi '0' untuk mewakili truf jika truf dipimpin:
Kartu terbaik yang sedang dimainkan ditemukan dengan mengurutkan tiga kartu pertama dan mengambil kartu pertama:
Kartu yang dapat diputar ditemukan. Jika ada kartu di tangan yang cocok dengan setelan utama, maka hanya kartu yang tersisa. Kalau tidak, semua kartu dianggap dapat dimainkan:
Kartu 'throwaway' ditemukan dengan mengembalikan kartu terakhir dalam susunan kartu yang dapat dimainkan yang diurutkan:
Kartu 'menang' terendah yang dapat memenangkan trik ditemukan dengan menambahkan kartu tertinggi yang sedang dimainkan ke dalam array kartu yang dapat dimainkan, mengurutkan susunan, dan mengulanginya sampai kartu tertinggi yang sedang dimainkan ditemukan. Kartu 'menang' adalah kartu dari iterasi sebelumnya:
Permainan yang benar kemudian dievaluasi. Kartu 'sekali pakai' dipilih jika salah satu dari yang berikut ini benar:
Kalau tidak, kartu 'menang' dikembalikan:
sumber