यूचरे में सर्वश्रेष्ठ कार्ड खेलें


13

इनपुट:

सबसे पहले
प्रत्येक खिलाड़ी द्वारा खेले जाने वाले कार्डों का प्रतिनिधित्व करने वाले तीन कार्डों की एक सरणी

[JD][TH][9S]

का प्रतिनिधित्व

Jack of Diamonds, 10 of Hearts, and Nine of Spades.

जैसा कि आप हमेशा यूचरे में अपनी टीम के साथी से बैठते हैं, दूसरा तत्व आपकी टीम के साथी के खेल का प्रतिनिधित्व करता है। इधर, TH

दूसरी तरह
एक एकल चार, स्ट्रिंग, आदि जैसे ट्रम्प सूट का प्रतिनिधित्व करते हैं

S, D, C, H

का प्रतिनिधित्व

Spades, Diamonds, Clubs, Hearts

तीसरी तरह से आपके हाथ का प्रतिनिधित्व करने वाले चार कार्डों की एक सरणी

[KD][JC][QH][AS]

का प्रतिनिधित्व

King of Diamonds, Jack of Clubs, Queen of Hearts, Ace of Spades

उद्देश्य:

तीन इनपुटों को देखते हुए, कार्ड को जोड़ने के लिए सबसे अच्छा संभव कार्ड का उत्पादन किया गया है जो इस तरह खेला गया है कि यह निम्नलिखित मानदंडों को पूरा करता है:

  1. अगर यह कम से कम मूल्यवान कार्ड का उत्पादन नहीं करता है तो यह हाथ लग सकता है
  2. यदि यह हो सकता है तो यह हाथ में लेता है, हालांकि यह आपकी टीम के साथी को तब तक नहीं करेगा जब तक कि यह अपरिहार्य न हो
  3. यदि यह हाथ ले सकता है, तो यह कम से कम मूल्यवान कार्ड का उपयोग करके करता है। (यदि आपके पास एक इक्का और एक रानी है जो हाथ जीत सकता है, तो आप रानी की भूमिका निभाते हैं)।
  4. किसी भी नाटक को नीचे दिए गए नियमों के अनुसार सूट करना चाहिए।

जैसे आउटपुट स्वरूप [JD]

का प्रारूपण

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

उदाहरण

में: [QD][KD][9C], "C",[AH][JH][QH][9H]

बाहर: 9H

कारण: क्लब ट्रम्प हैं, 9 सी हाथ जीत रहा है, हम हाथ नहीं ले पा रहे हैं इसलिए हमें अपने सबसे निचले हिस्से को छोड़ देना चाहिए, यहाँ 9H

में: [QD][KD][AD], "H",[AH][JH][QH][9H]

बाहर: 9H

कारण: जैसा कि हर्ट्स ट्रम्प हैं, ऐस ऑफ डायमंड्स वर्तमान में हाथ जीत रहे हैं, हम हाथ ट्रम्प करने में सक्षम हैं इसलिए हमें अपने सबसे कम कार्ड का उपयोग करना चाहिए, यहाँ 9H

में: [QD][KD][TD], "D",[AD][JH][QH][9D]

बाहर: 9D

कारण: जैसा कि हीरे ट्रम्प हैं और हम वर्तमान में हाथ जीत रहे हैं, हमें 9 डी खेलना चाहिए क्योंकि वर्तमान में हमारा साथी हाथ जीत रहा है, इसलिए हम 9Dओवर खेलना चाहते हैंAD

में: [QH][KH][JH], "D",[AD][JD][QH][9D]

बाहर: QH

कारण: जैसा कि हीरे ट्रम्प हैं हमारे प्रतिद्वंद्वी बाएं बोवर के साथ जीत रहे हैं हमारे JHपास सही बोवर है लेकिन उसे ट्रम्प नहीं कर सकते क्योंकि क्यूएच का नेतृत्व किया गया था और हमें सूट का पालन करना चाहिए,QH

में: [QH][KH][JH], "D",[AD][JD][QC][9D]

बाहर: JD

कारण: जैसा कि हीरे ट्रम्प कर रहे हैं, हमारे प्रतिद्वंद्वी बाएं बोवर से जीत रहे हैं। हमारे JHपास दायाँ बोवर है और चूंकि हमारे पास कोई नहीं है Diamondsइसलिए हम उसके साथ ट्रम्प कर सकते हैंJD

यूचरे कार्ड की ताकत

अगर दिल ट्रम्प है:

JH
JD
AH
KH
QH
TH
9H

यूच्रे नियम देखें यदि आप यूचरे में विभिन्न कार्डों की ताकत से अपरिचित हैं

चूंकि यह कोड-गोल्फ सबसे छोटा कोड जीत है!

गुड लक और मजा करें!


2
मुझे लगता है कि नाटक का वर्णन यहां एक कड़ी के साथ किया जाना चाहिए।
जोनाथन एलन

@JonathanAllan मैंने इसके बारे में सोचा था, लेकिन यह लिंक में बेहतर वर्णित है। शायद उन लोगों के लिए सबसे अच्छी चुनौती नहीं है जो खेल से अपरिचित हैं। जब तक वे मक्खी पर सीखना नहीं चाहते।
जैक्सनसेक 12

उदाहरण के 9Dरूप में परिणाम के साथ दिलों को ट्रंप के रूप में सेट किया गया है (हालांकि मुझे नहीं लगता कि यह इस परिणाम को प्रभावित करता है)।
जोनाथन एलन

@JonathanAllan अच्छा कैच, धन्यवाद।
जैक्सनसेक 13

1
@jacksonecac समस्या के लिए धन्यवाद, मैंने इसके साथ मज़े किए।
डेव

जवाबों:


2

पर्ल - 557 532 511 490 482 384 363

($p,$t,$h)=@ARGV;%L=(H=>D,D=>H,C=>S,S=>C);$B=%L{$t};$_="\]$p$h\[";s/(.$t)/0$1/g;s/J$B/01$B/;s/0J/00/;s/J/R/g;s/9/Z/g;($T,@C)=split/\]\[/,$_;$s=$C[0];$s=~s/.+(.)/$1/;$s=~s/$t/0/;$X=(sort@C[0..2])[0];@M=@C[3..6];@F=(grep{/$s/}@M);@M=@F if@F;$w=(sort@M)[@M-1];push@M,$X;foreach$g(sort@M){$g ne$X?$b=$g:last}$_=$C[1]eq$X||!$b?$w:$b;s/.(..)/$1/;s/Z/9/;s/0|1|R/J/;print

यह काम किस प्रकार करता है

इसे ऑनलाइन आज़माएं!

पहले यह पढ़ता है और एक हैश लुकिंग के साथ बाएं-बाउर का सूट (ट्रम्प के समान रंग का जैक) पाता है:

($p,$t,$h)=@ARGV;
%L=(H=>D,D=>H,C=>S,S=>C);
$B=%L{$t};

तब यह सभी कार्डों को एक तार में जोड़ता है और कुछ प्रतिस्थापन करता है, जिससे कार्ड स्वाभाविक रूप से यूचरे के लिए सही क्रम में बनता है:

$_="\]$p$h\[";
s/(.$t)/0$1/g; # trump cards start with '0'
s/J$B/01$B/;   # left-bauer's 'J' changes to '01', making it trump
s/0J/00/;      # right-bauer's 'J' changes to '0'
s/J/R/g;       # all other jacks have 'J' changed to 'R'
s/9/Z/g;       # all 9s change to Z
($T,@C)=split/\]\[/,$_;

इस ब्लॉक के अंत में, कार्ड स्ट्रिंग को कोष्ठक पर विभाजित किया जाता है, जो सभी कार्डों की एक सरणी बनाता है:

  • इंडेक्स 0 = प्रतिद्वंद्वी का लीड कार्ड

  • इंडेक्स 1 = टीम के साथी का कार्ड

  • सूचकांक 2 = अन्य प्रतिद्वंद्वी का कार्ड

  • सूचक 3-6 हाथ का प्रतिनिधित्व करते हैं

लीड कार्ड को पहले कार्ड से पार्स किया गया है, लेकिन ट्रम्प के नेतृत्व में ट्रम्प का प्रतिनिधित्व करने के लिए सूट '0' में बदल जाता है:

$s=$C[0];
$s=~s/.+(.)/$1/;
$s=~s/$t/0/;

सबसे अच्छा कार्ड इन-प्ले पहले तीन कार्डों को छाँटकर और पहला कार्ड प्राप्त करने पर मिलता है:

$X=(sort@C[0..2])[0];

खेलने योग्य कार्ड पाए जाते हैं। यदि कोई कार्ड इन-हैंड लीड सूट से मेल खाता है, तो केवल वही कार्ड बचे रहते हैं। अन्यथा सभी कार्डों को खेलने योग्य माना जाता है:

@M=@C[3..6];
@F=(grep{/$s/}@M);
@M=@F if@F;

बजाने वाले कार्ड के सॉर्ट किए गए सरणी में अंतिम कार्ड वापस करके 'थ्रोअवे' कार्ड पाया जाता है:

$w=(sort@M)[@M-1];

सबसे कम 'जीतने वाला' कार्ड जो चाल जीत सकता है, उसे खेलने योग्य कार्डों के सरणी में उच्चतम कार्ड इन-प्ले को जोड़कर, सरणी को सॉर्ट करके, और तब तक इस पर पुनरावृत्ति किया जाता है जब तक कि उच्चतम कार्ड इन-प्ले नहीं मिलता है। 'जीत' कार्ड पिछले पुनरावृत्ति का कार्ड है:

push@M,$X;
foreach$g(sort@M){$g ne$X?$b=$g:last}

सही नाटक का मूल्यांकन किया जाता है। निम्न में से कोई भी सत्य होने पर 'थ्रोअवे' कार्ड चुना जाता है:

  1. टेबल पर सबसे अच्छे कार्ड में सभी कार्डों के अनारक्षित सरणी में 1 का सूचकांक होता है, जिसका अर्थ है कि यह हमारे टीममेट का है
  2. सबसे कम 'विजेता' कार्ड की खोज शून्य हो गई, जिसका अर्थ है कि हमारे प्रतिद्वंद्वी का सबसे अच्छा कार्ड हाथ में सभी कार्डों से अधिक है

अन्यथा 'जीत' कार्ड लौटा दिया जाता है:

$_=$C[1]eq$X||!$b?$w:$b;
s/.(..)/$1/; # remove the '0' that indicated trump
s/Z/9/;      # get those 9s back
s/0|1|R/J/;  # fix the jacks
print
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.