क्या यह एक वैध चिचू खेल है?


11

Tichu एक कार्ड गेम है जिसमें खिलाड़ी एक डेक से ताश के पत्तों के सेट को एक मानक 52-कार्ड डेक से जोड़ते हैं , साथ ही साथ कार्ड को एक अतिरिक्त गेम खेलते हैं:

  • अजगर है, जो किसी भी अन्य कार्ड की तुलना में अधिक महत्व है
  • अचंभा , जो एक वाइल्डकार्ड के रूप में कार्य कर सकते हैं
  • कुत्ता है, जो अपने साथी के बारी से गुजरता है
  • महिंद्रा जोंग , जो मान 1 है (और व्यक्ति पकड़े यह पहली बार खेलता है)

पहला खिलाड़ी (जिसे "लीड" कहा जाता है) निम्न प्रकार के कार्ड संयोजनों में से एक को चुनना चुन सकता है:

  • एक एकल (जैसे6 )
  • एक जोड़ी ( JJ)
  • एक ट्रिपल ( 555)
  • एक पूर्ण घर ( QQQ33) - एक ट्रिपल और एक जोड़ी
  • एक सीधा ( 56789) - 5 या अधिक लगातार कार्ड
  • एक ट्रैक्टर ( 223344) - जोड़े का लगातार क्रम

बाद में खिलाड़ियों को केवल उसी प्रकार के कार्ड का एक सेट खेलने की अनुमति दी जाती है, लेकिन सख्ती से अधिक होती है। उदाहरण के लिए, के QQशीर्ष पर खेला जा सकता है JJ, लेकिन QQKKयह (एक ट्रैक्टर नहीं है, एक जोड़ी नहीं है)। पूर्ण घरों को ट्रिपल (जैसे 77722> 44499) द्वारा आदेश दिया जाता है , और स्ट्रेट्स और ट्रैक्टर की लंबाई समान होनी चाहिए ( 456789शीर्ष पर नहीं खेला जा सकता 23456)। इक्के ऊंचे होते हैं।

एक अपवाद है: समान कार्ड में से कोई भी 4 बम है , और उच्च बम को छोड़कर किसी भी चीज के ऊपर खेला जा सकता है। 1

किसी भी एकल के शीर्ष पर या लीड के साथ ड्रैगन को खेला जा सकता है (लेकिन कहीं नहीं)। फीनिक्स, एक वाइल्डकार्ड होने से अलग, ड्रैगन के अलावा किसी एक के ऊपर भी खेला जा सकता है। 2 कुत्ते को केवल लीड के साथ ही खेला जा सकता है और तुरंत मोड़ को समाप्त कर सकता है। 3


आपकी चुनौती यह निर्धारित करने के लिए है कि क्या एक दिया गया टिशू खेल वैध है, पिछले नाटक को देखते हुए।

आप किसी भी क्रम में दोनों नाटकों को पूर्णांक या स्ट्रिंग्स की सूची के रूप में स्वीकार कर सकते हैं - या तो मामले में, आप पूर्णांक / वर्णों को कार्ड के किसी भी मानचित्रण का चयन कर सकते हैं। यदि कोई पिछला नाटक था, तो यह हमेशा मान्य होगा, और यदि नहीं (यानी खिलाड़ी लीड है), पहला इनपुट खाली सरणी / स्ट्रिंग (अन्य इनपुट के प्रकार से मेल खाता) होगा। कार्ड किसी विशेष क्रम में दिए जाने की गारंटी नहीं है।

आपके आउटपुट को बिल्कुल दो अलग-अलग मूल्यों के सेट से चुना जाना चाहिए, जिनमें से एक इंगित करता है कि नाटक कानूनी है और एक इंगित करता है कि यह नहीं है।

इस बात के लिए परीक्षण करने की आवश्यकता नहीं है कि क्या कार्ड का सेट वास्तव में डेक में मौजूद है (उदाहरण के 77766बाद)88877 असंभव है क्योंकि केवल चार 7 हैं) - ऐसे मामलों को कभी नहीं दिया जाएगा।

निम्नलिखित परीक्षण मामलों में, 234567890JQKAइक्का के माध्यम से 2 का RPD1प्रतिनिधित्व करते हैं, और क्रमशः ड्रैगन, फीनिक्स, कुत्ते और मह जोंग का प्रतिनिधित्व करते हैं। खाली स्ट्रिंग को यहां दिखाया गया है -। ये नाटक कानूनी हैं:

6 J
JJ QQ
555 KKK
44499 77722
23456 56789
223344 QQKKAA
49494 72727
A R
A P
P R
66 7P
P6 77
58304967 6P0594J7
5P304967 680594J7
57446765 788657P5
- D
- 1
- 12345
3344556677889900 JJJJ
5555 7777

और ये नहीं हैं:

9 3
66 55
888 444
44 888
77722 44499
44499 777
44499 777JJJ
45678 34567
34567 456789
556677 334455
5566 778899
72727 49494
A A
R A
R P
77 RP
77 6P
P7 66
680594J7 5P304967
6P0594J7 58304967
57446765 3645P536
1 D
2 D
2 1
- 1234
7777 5555
- 223355

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

2: फोनिक्स मूल्य के साथ एक कार्ड के शीर्ष पर खेला का मूल्य n वास्तव में है n + 0.5 (एक 9 पर एक फोनिक्स है एक 9 और एक आधा); चूँकि इसके लिए अतिरिक्त इतिहास के ज्ञान की आवश्यकता होती है, इसलिए कोई भी परीक्षण मामले एक एकल फ़ीनिक्स के शीर्ष पर खेले जाने वाले खेल में शामिल नहीं होते हैं

3: इसलिए पहला इनपुट कभी कुत्ता नहीं होगा


नहीं @Arnauld सभी वैध संयोजन दिए गए हैं (उदाहरण के लिए 777JJJ, 1234, 223355)। हालांकि, RP": मान्य नहीं है अजगर किसी एक या साथ नेतृत्व के ऊपर से ही खेला जा सकता है (लेकिन कहीं और)। "
दरवाज़े

दरअसल, मैं यह कहने के लिए अपनी टिप्पणी संपादित करने वाला था कि सभी प्रथम हाथ हमेशा मान्य लगते हैं।
अरनुलद

1
@Arnauld आह - हाँ, आप मान सकते हैं कि सभी पहले हाथ वैध हैं।
दरवाज़े

यह उल्लेखनीय है कि एक Phenix एक बम में वाइल्डकार्ड के रूप में इस्तेमाल नहीं किया जा सकता है। 5555 777Pएक अमान्य नाटक होना चाहिए, लेकिन दोनों वर्तमान उत्तर इसे वैध मानते हैं।
जित्स

जवाबों:


5

जावास्क्रिप्ट (ईएस 6),  274  273 बाइट्स

(a)(b)

  • 1
  • 3
  • 4..16
  • 18
  • 19

रिटर्न झूठी वैध या के लिए सही अमान्य है।

a=>b=>!(L='length',[A,B]=(g=a=>(h=n=>--n?[i=1,2,3,'(20*)3|30*2','1{5,}','22+',4].some(p=>m=o.join``.match(`9(0*)(${p})0*$`,i++),a.map(x=>o[x-19?x:x=n]=-~o[x],o=[...9e16+'']))?[i,m[1][L]+(m[3]||[])[L]]:h(n):[])(18))(a),[C,D]=g(b),a+a?A-C?C>7|+b>a:a[L]==b[L]&D>B|A<3&b==18:C)

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

कैसे?

o[]9

//       D  -  1  2  3  4  5  6  7  8  9  T  J  Q  K  A
o = [ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];

हाथ में प्रत्येक कार्ड रैंक के लिए, इसी स्लॉट को बढ़ाया o[]जाता है। एक बार स्ट्रिंग में शामिल होने के बाद, हम प्रत्येक प्रकार के हाथ का पता लगाने के लिए निम्नलिखित नियमित भावों को लागू कर सकते हैं:

 hand        | pattern     | full regex              | example
-------------+-------------+-------------------------+-------------------
 single      | 1           | /9(0*)(1)0*$/           | 90000100000000000
 pair        | 2           | /9(0*)(2)0*$/           | 90000002000000000
 3-of-a-kind | 3           | /9(0*)(3)0*$/           | 90003000000000000
 full house  | (20*)3|30*2 | /9(0*)((20*)3|30*2)0*$/ | 90020000030000000
 straight 5+ | 1{5,}       | /9(0*)(1{5,})0*$/       | 90000111110000000
 tractor     | 22+         | /9(0*)(22+)0*$/         | 90000000000022200
 bomb        | 4           | /9(0*)(4)0*$/           | 90000000000000004

यदि हाथ इन नियमित अभिव्यक्तियों में से किसी को भी ट्रिगर नहीं करता है, तो यह अमान्य है।

9(20*) पैटर्न ।

फ़ीनिक्स (यानी वाइल्डकार्ड) को प्रत्येक संभावित कार्ड रैंक के साथ बदल दिया जाता है, जब तक कि एक मैच का पता नहीं चल जाता है, तब तक उच्चतम एक के साथ शुरू होता है।


0

पायथन 3 , 466 455 403 401 399 बाइट्स

R=lambda H,n=3:n==len(H)*(len({*H})<2)and[15]!=H[1:]
s=lambda H:[H[2:],H[:1]][R(H[:3])]
def n(J,K):j,k=[[16in H,R(H,4),len(H)>4and all(15!=t>T-2for t,T in zip(H,H[1:])),[R(H[2:])*R(H[:2],2),R(H[3:],2)][R(H[:3])],R(H),R(H,2),R(H,1),1].index(1)for H in[J,K]];return k!=7and[17]==J or[j==k*[J<K,s(J)<s(K)][2<j<5],J<K][k==1]
f=lambda P:any(n(*[sorted([L,i][i>0]for i in H)for H in P])for L in range(16))

इसे ऑनलाइन आज़माएं! इनपुट हाथों की सूची है जहां हाथ निम्नलिखित मूल्य मैपिंग के साथ पूर्णांक 1 की सूची है :

  • 0: फीनिक्स
  • 1: मह जोंग
  • 2-13: 2 से ऐस
  • 14: ड्रैगन
  • 15: कुत्ता
  • 16: खाली स्ट्रिंग

1: यद्यपि लिंक किए गए TIO परीक्षणों में सुविधा के कारण स्ट्रिंग्स की सूची के साथ व्यक्त किया जाता है जिन्हें कॉल करने से पहले मूल्य मैपिंग के अनुसार अनुवादित किया जाता है f

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.