Camicia

Camicia

मध्यम

परिचय

एक बरसाती दोपहर को आप रसोई की मेज़ पर अपनी दादी के साथ ताश खेलते हुए बैठे हैं। यह खेल Camicia का उनका अपना रूप है।

शुरू में यह बस एक और दोस्ताना मुकाबला ही लगता है: पत्ते पटकना, मेज़ के चारों ओर हँसी, और कभी-कभी Nonna की जीत भरी मुस्कान। लेकिन जैसे-जैसे खेल लंबा खिंचता जाता है, कुछ अजीब होने लगता है। वही पत्ते बार-बार लौटकर आते रहते हैं। आप एक के बाद एक पत्ता खेलते जाते हैं, फिर भी अंत आता ही नहीं दिखता।

आप सोचने लगते हैं। क्या यह खेल कभी खत्म होगा? या हम इसे हमेशा खेलते रह सकते हैं?

बाद में, जिज्ञासा के कारण आप ऑनलाइन खोजते हैं और आश्चर्य के साथ पता चलता है कि जो हुआ वह सिर्फ दुर्भाग्य नहीं था। हो सकता है कि आप और आपकी दादी सबसे लंबे संभव क्रमों में से किसी एक पर पहुँच गए हों! अचानक आप इस खेल में खो जाते हैं। जो एक साधारण खेल के रूप में शुरू हुआ था, वह अब एक खोज बन गया है: ऐसा खेल सचमुच कितनी देर चल सकता है? क्या आप उससे भी लंबा क्रम ढूँढ सकते हैं जो आपने रसोई की मेज़ पर खेला था? शायद इतना लंबा कि एक नया विश्व रिकॉर्ड बन जाए?

और इस तरह, हाथ में सिर्फ ताश की एक गड्डी और एल्गोरिद्म की थोड़ी-सी समझ लेकर, आप जाँच करने का मन बना लेते हैं...

निर्देश

इस अभ्यास में आप ताश के क्लासिक खेल Camicia जैसा एक खेल चलाने वाला प्रोग्राम लिखेंगे। आपका प्रोग्राम दोनों खिलाड़ियों की गड्डियों की शुरुआती स्थिति लेकर यह खेल तब तक चलाएगा जब तक कि वह खत्म न हो जाए, या यह पता न लगा ले कि वह कभी खत्म नहीं होगा।

नियम

  • गड्डी दो खिलाड़ियों के बीच बाँटी जाती है। किसी खिलाड़ी के पत्ते बाएँ से दाएँ पढ़े जाते हैं, जहाँ सबसे बायाँ पत्ता गड्डी का सबसे ऊपरी पत्ता होता है।
  • एक राउंड में दोनों खिलाड़ी कम से कम एक-एक पत्ता चलाते हैं।
  • खिलाड़ी बारी-बारी अपनी गड्डी का सबसे ऊपरी पत्ता बीच के ढेर पर रखते हैं।
  • अगर पत्ता संख्या वाला (2-10) है, तो बारी सीधे दूसरे खिलाड़ी के पास चली जाती है।
  • अगर पत्ता भुगतान वाला है, तो जुर्माना देना पड़ता है:
    • J → प्रतिद्वंद्वी को 1 पत्ता देना पड़ता है
    • Q → प्रतिद्वंद्वी को 2 पत्ते देने पड़ते हैं
    • K → प्रतिद्वंद्वी को 3 पत्ते देने पड़ते हैं
    • A → प्रतिद्वंद्वी को 4 पत्ते देने पड़ते हैं
  • अगर जुर्माना देते समय कोई खिलाड़ी कोई और भुगतान वाला पत्ता चलाता है, तो उस खिलाड़ी का जुर्माना देना वहीं रुक जाता है। अब जुर्माना दूसरे खिलाड़ी को देना होता है, और वह नए भुगतान वाले पत्ते के हिसाब से तय होता है।
  • अगर जुर्माना बिना किसी रुकावट के पूरा भर दिया जाता है, तो जिस खिलाड़ी ने अंतिम भुगतान वाला पत्ता रखा था, वह बीच का ढेर उठा लेता है और उसे अपनी गड्डी के सबसे नीचे रख देता है। इसके बाद वही खिलाड़ी अगला राउंड शुरू करता है।
  • अगर किसी खिलाड़ी के पत्ते खत्म हो जाते हैं और वह पत्ता नहीं चल पाता (चाहे जुर्माना देते समय हो या जब उसकी बारी हो), तो बीच का ढेर दूसरा खिलाड़ी उठा लेता है।
  • जिस पल कोई खिलाड़ी बीच के ढेर से पत्ते उठाता है, उसे ट्रिक कहते हैं।
  • अगर किसी ट्रिक के बाद सारे पत्ते एक ही खिलाड़ी के पास हो जाएँ, तो खेल खत्म हो जाता है।
  • जैसे ही दोनों गड्डियाँ खेल के दौरान पहले किसी समय जैसी थीं, वैसी ही हो जाती हैं, खेल लूप में चला जाता है। इसमें संख्या वाले पत्ते नहीं गिने जाते!

उदाहरण

यह एक छोटा उदाहरण है ऐसे खेल का जो खत्म हो जाता है।

राउंड खिलाड़ी A खिलाड़ी B ढेर बाकी जुर्माना
1 2 A 7 8 Q 10 3 4 5 6 K 9 J -
1 A 7 8 Q 10 3 4 5 6 K 9 J 2 -
1 A 7 8 Q 10 4 5 6 K 9 J 2 3 -
1 7 8 Q 10 4 5 6 K 9 J 2 3 A खिलाड़ी B: 4
1 7 8 Q 10 5 6 K 9 J 2 3 A 4 खिलाड़ी B: 3
1 7 8 Q 10 6 K 9 J 2 3 A 4 5 खिलाड़ी B: 2
1 7 8 Q 10 K 9 J 2 3 A 4 5 6 खिलाड़ी B: 1
1 7 8 Q 10 9 J 2 3 A 4 5 6 K खिलाड़ी A: 3
1 8 Q 10 9 J 2 3 A 4 5 6 K 7 खिलाड़ी A: 2
1 Q 10 9 J 2 3 A 4 5 6 K 7 8 खिलाड़ी A: 1
1 10 9 J 2 3 A 4 5 6 K 7 8 Q खिलाड़ी B: 2
1 10 J 2 3 A 4 5 6 K 7 8 Q 9 खिलाड़ी B: 1
1 10 - 2 3 A 4 5 6 K 7 8 Q 9 J खिलाड़ी A: 1
1 - - 2 3 A 4 5 6 K 7 8 Q 9 J 10 -
2 - 2 3 A 4 5 6 K 7 8 Q 9 J 10 - -

status: "finished", cards: 13, tricks: 1

यह एक छोटा उदाहरण है ऐसे खेल का जो लूप में चला जाता है।

राउंड खिलाड़ी A खिलाड़ी B ढेर बाकी जुर्माना
1 J 2 3 4 J 5 - -
1 2 3 4 J 5 J खिलाड़ी B: 1
1 2 3 J 5 J 4 -
2 2 3 J 4 J 5 - -
2 3 J 4 J 5 2 -
2 3 J 4 5 2 J खिलाड़ी A: 1
2 J 4 5 2 J 3 -
3 J 4 5 2 J 3 - -
3 J 4 2 J 3 5 -
3 4 2 J 3 5 J खिलाड़ी B: 1
3 4 J 3 5 J 2 -
4 4 5 J 2 J 3 - -

राउंड 4 की शुरुआत राउंड 2 की शुरुआत से मेल खाती है। याद रखिए, संख्या वाले पत्तों की वैल्यू से कोई फर्क नहीं पड़ता।

status: "loop", cards: 8, tricks: 3

आपका काम

  • दिए गए इनपुट की मदद से ऊपर बताए नियमों के मुताबिक खेल चलाइए।
  • खेल के बारे में ये जानकारियाँ पता कीजिए:
    • Status: "finished" या "loop"
    • Cards: पूरे खेल में चले गए पत्तों की कुल संख्या
    • Tricks: बीच का ढेर कितनी बार उठाया गया
Advanced

जो लोग इससे भी अधिक रोमांचक चैलेंज लेना चाहते हैं, उनके लिए खबर है कि जिस खेल का अंत होता है, उसमें सबसे लंबे खेल के और रिकॉर्ड ढूँढने की तलाश अब भी जारी है। इसकी 653,534,134,886,878,245,000 (करीब 654 क्विंटिलियन) संभावनाएँ हैं, और हमने अभी तक इन सबकी गणना नहीं की है!


स्रोत

Beggar-My-Neighbourयह लिंक एक नई विंडो या टैब में खुलता है
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Elixir Exercism

Camicia शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Elixir को 58 कॉन्सेप्ट168 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।