पासा क्रिकेट का खेल खेलते हैं


12

पासा क्रिकेट एक ऐसा खेल है जिसे मैं एक बच्चे के रूप में पेश किया गया था और वर्षों से समय गुजारने के तरीके के रूप में इस्तेमाल किया जाता है। मुझे एक विकिपीडिया पृष्ठ नहीं मिला, इसलिए मैं नीचे दिए गए नियमों की व्याख्या करूँगा।

पासा क्रिकेट के नियम

परिसर

पासा क्रिकेट का एक खेल स्कोरिंग के लिए इसी तरह एक खेल है क्रिकेट के रूप में आप इसे देखना लेकिन बजाय देख और परिणाम की रिकॉर्डिंग, आप कर रहे हैं एक मरने रोलिंग और परिणाम की रिकॉर्डिंग।

परिणाम एक तालिका में दर्ज किए गए हैं जैसा कि नीचे दिखाया गया है।

प्रदर्शन

पासा क्रिकेट सभी जानकारी को दिखाने के लिए एक विशिष्ट प्रदर्शन का उपयोग करता है।

तालिका में 11 पंक्तियाँ हैं। प्रत्येक पंक्ति एक बल्लेबाज का प्रतिनिधित्व करती है। पंक्ति का लेआउट नीचे समझाया गया है।

+------+------------------------------+---------+-----+
| Name |    Runs                      | How Out |Score|
+------+------------------------------+---------+-----+
  • नाम: नाम पूरी तरह से अक्षरों, ऊपरी या निचले मामले से बना एक स्ट्रिंग होना चाहिए
  • रन: एक बल्लेबाज 30 गेंदों का सामना कर सकता है। प्रत्येक गेंद एक हो सकती है 1 2 4 6 . /। इसे नीचे और अधिक विस्तार से समझाया जाएगा
  • कैसे आउट: बल्लेबाज जिस तरह से आउट हुए। किसी भी हो सकता हैBowled, LBW (Leg Before Wicket), Caught, Retired or Not Out
  • स्कोर: सभी संख्याओं का योग Runs

गेम कैसे काम करता है

एक खेल में, पिच पर हमेशा 2 बल्लेबाज होते हैं। पहला खिलाड़ी डिफ़ॉल्ट रूप से वर्तमान बल्लेबाज है और दूसरा "ऑफ" बल्लेबाज में है।

एक खेल "गेंदों" से बना है: क्रिकेट मैच में प्रत्येक गेंद को पासा रोल द्वारा दर्शाया जाता है। प्रत्येक रोल एक अलग कमांड करता है:

  • 1,2,4 और 6 बल्लेबाज के स्कोर को इतना बनाते हैं। यदि 1 को रोल किया जाता है, तो वर्तमान बैटर "ऑफ" बैटर बन जाता है और "ऑफ" बैटर चालू हो जाता है
  • 3 एक "डॉट बॉल" है, जिसका अर्थ है कि कुछ भी नहीं होता है। इसे Runsअनुभाग में a .और स्कोर के 0रूप में दर्शाया गया है। इसका प्रतिनिधित्व करने के लिए इसका उपयोग नहीं किया जा सकता है।
  • 5 विकेट है। यदि 5 को रोल किया जाता है, तो वर्तमान बैटर "आउट" हो जाता है, इसका मतलब है कि /रनों में जोड़ दिया गया है और तब से, बैटर रन नहीं बना सकता है। बल्लेबाज को फिर अगले बल्लेबाज के साथ स्वैप किया जाता है जिसने बल्लेबाजी नहीं की है। How Outअनुभाग संभव तरीके बाहर निकलने के लिए के एक यादृच्छिक विकल्प है:Bowled, LBW, Caught

एक विकेट के लिए उदाहरण (यह सिर्फ स्पष्टता के लिए है, यह नहीं है कि इसका आउटपुट कैसा है)

player a is on 4,6,2,6,4
player b is on 6,4,2,6,6
player c hasn't batted
player a is current batter

WICKET!!!

player a is on 4,6,2,6,4,/
player b in on 6,4,2,6,6
player c is on NOTHING
player c is current batter

हर 6 गेंदों में, दो बल्लेबाज स्विच करते हैं; वर्तमान बल्लेबाज "बंद" बल्लेबाज बन जाता है और "बंद" बल्लेबाज वर्तमान बल्लेबाज बन जाता है

यदि Runsअनुभाग (30 गेंद) भरा जाता है, तो बल्लेबाज बाहर हो जाता है और How Outअनुभाग सेट हो जाता है Retired। A / कोRuns बॉक्स के अंत में नहीं रखा गया है ।

वास्तविक चुनौती (हाँ यह सब खेल का नियम था)

आपकी चुनौती एक पूर्ण तालिका (उदाहरण के अंत में) को आउटपुट करने के लिए है, नामों की एक सूची दी गई है। आउटपुट की सामग्री में केवल टेबल और / या अग्रणी या अनुगामी व्हाट्सएप होना चाहिए।

नियम

  • मानक खामियों को अस्वीकार कर दिया जाता है
  • सभी 11 खिलाड़ियों के Runsअनुभाग में कुछ होना चाहिए ।
  • केवल 1 खिलाड़ी हो सकता है Not Out। हर दूसरे गैर-सेवानिवृत्त खिलाड़ी की पसंद से बाहर होना चाहिए[Bowled, LBW, Caught]
  • नाम 1 और 6 के बीच किसी भी लम्बाई के हो सकते हैं जो रेगेक्स से मेल खाते हैं A-Za-z
  • तालिका में अंतिम पंक्ति कुल पंक्ति होनी चाहिए (उदाहरण देखें)
  • आपको किसी भी तरह से तालिका में पाठ संरेखित करने की आवश्यकता नहीं है, लेकिन पंक्ति और स्तंभ विभाजकों को गठबंधन करना होगा।

उदाहरण

Input:
['Fred', 'Sonya', 'David', 'Ben', 'Cody', 'Hazel', 'Nina', 'Kim', 'Cath', 'Lena', 'Will']
Output:
+------+------------------------------+---------+-----+
| Name | Runs                         | How Out |Total|
+------+------------------------------+---------+-----+
|Fred  |.662/                         | Caught  | 14  |
+------+------------------------------+---------+-----+
|Sonya |1164/                         | Caught  | 12  |
+------+------------------------------+---------+-----+
|David |/                             |   LBW   |  0  |
+------+------------------------------+---------+-----+
|Ben   |424/                          |   LBW   | 10  |
+------+------------------------------+---------+-----+
|Cody  |62/                           | Bowled  |  8  |
+------+------------------------------+---------+-----+
|Hazel |/                             |   LBW   |  0  |
+------+------------------------------+---------+-----+
|Nina  |161.6226166..44261442/        | Caught  | 64  |
+------+------------------------------+---------+-----+
|Kim   |11/                           | Caught  |  2  |
+------+------------------------------+---------+-----+
|Cath  |6.21/                         |   LBW   |  9  |
+------+------------------------------+---------+-----+
|Lena  |/                             | Bowled  |  0  |
+------+------------------------------+---------+-----+
|Will  |2                             | Not Out |  2  |
+------+------------------------------+---------+-----+
|               Total Runs                      | 121 |
+-----------------------------------------------+-----+


हेह, मैं "हैंड क्रिकेट" नामक इसी तरह का एक संस्करण चलाता था।
अशुभ

खेल समाप्त होने पर क्या निर्धारित करता है? क्या ऐसा होता है जब बल्लेबाज आउट हो जाता है और उसकी जगह लेने के लिए कोई नहीं बचा है?
केस्मार्ट्स

@KSmarts सही।
caird coinheringaahing

1
@JonathanAllan हाँ, यह एक अच्छी आवश्यकता नहीं है। निकाल दिया गया
caird coinheringaahing

जवाबों:


2

पायथन 3 , 650 621 582 572 588 बाइट्स

from random import*
h=str
c=h.center
a='+'.join(map('-'.__mul__,[0,6,30,9,5,0]))+'\n'
b=lambda x,r=6:x.ljust(r,' ')
j=''.join
t=lambda a:sum(map(int,a[:-1].replace(*'.0')))
P=print
def s(i=30):
 while i:x=choice('12.4/6');yield x;i=('/'!=x)*~-i
def f(n,T=0):
 n=[*map(b,n)]
 P(a+f'| Name | Runs{" "*25}| How Out |Total|')
 for x in n[:-1]:S=j(s());T+=t(S);P(a,x,b(S,30),c(choice(['Bowled','LBW','Caught']),9),c(h(t(S)),5),sep='|',end='|\n')
 S=j(s());P(a,n[-1],b(S,30),' Not Out ',c(h(t(S)),5),sep='|',end='|\n');P(a+f'|{15*" "}Total Runs{15*" "}       |{c(h(T),5)}|\n+{47*"-"}+{5*"-"}+')

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

खैर, 24 घंटे से अधिक हो गए हैं और मुझे कोड़े मारने में लगभग एक घंटे का समय लगा है, इसलिए मुझे उम्मीद है कि मैं किसी के साथ FGITW'ing नहीं कर रहा हूं, और मैंने थोड़ी देर में पायथन में गोल्फ नहीं खेला है, इसलिए यह मजेदार था (हालांकि यह है) दूसरी बार जब मैंने एक लंबे अजगर जवाब के साथ अपने खुद के सवालों का जवाब दिया है)

कृपया गोल्फ सुझाव पोस्ट करने के लिए स्वतंत्र महसूस करें, पायथन गोल्फ के लिए मेरी सबसे अच्छी भाषा नहीं है।

-68 बाइट्स फ्लिपकैक को धन्यवाद !

-8 बाइट्स मिस्टर एक्सकोडर की बदौलत

बग के कारण +16 बाइट्स


पहली नज़र में, मैं काफी कुछ गोल्फ देख सकता हूं ... 1) एक उदाहरण में आप अभी भी printइसके बजाय उपयोग करते हैं P। 2) sumसीधे एक mapऑब्जेक्ट ले सकता है , इसे सूची में बदलने की कोई आवश्यकता नहीं है। 3) yield xदो बार लिखने के बजाय , यदि आवश्यक हो तो क्यों नहीं yield xऔर फिर ब्रेक? 4) T=0फ़ंक्शन हेडर के अंदर रखा जा सकता है। ५) अपने अंतिम कार्य में, आपने कई नई सूचियों का उपयोग किया है जहाँ आप अर्धविराम के साथ एक पंक्ति का उपयोग कर सकते हैं, उदाहरण के लिए पहले तीन कथन, अंतिम तीन कथन और लूप के लिए कथन।
9

@FlipTack अच्छा गोल्फ, और धन्यवाद!
केयर्ड कॉइनरहाइडिंग

आप sकाफी गोल्फ कर सकते हैं ... def s(i=30):और फिर while i:x=choice('12.4/6');yield x;i=('/'!=x)*~-i। इसके अलावा, आप केवल o()एक बार कॉल करते हैं , इसलिए इसे घोषित करने की कोई आवश्यकता नहीं है, बस सीधे स्टेटमेंट का उपयोग करें।
पलटें

यही बात b^^ पर लागू होती है
FlipTack

@FlipTack ने गोल्फों को जोड़ा। धन्यवाद!
केयर्ड कॉइनरहाइडिंग

0

चारकोल , 277 255 बाइट्स

≔E¹¹⟦⟦⟧⁰S⟧θ≔⮌θηW⊖Lη«≔⊟ηι≔‽12.4/6ζ⊞υζ⊞§ι⁰ζ≔⎇⁼ζ/⁺²‽³⁼³⁰L§ι⁰ζ¿ζ§≔ι¹ζ⊞ηι¿⊖Lη¿⁼¬﹪Lυ⁶¬εF⟦⊟η⊟η⟧⊞ηκ»”|⁴B\[⎇⁻℅↧T`⁵·5KMK⟲M≦»→´⁶_⭆∨R▷↥l⁹KG…≦”Fθ«◨⊟ι⁷◨Σ§ι⁰¦³²§⪪”(3⪪⪫⧴πZJL:∨XI±URD↗Σ9⟦FZ∕↖l⪪”⁷⊟ι◧IΣE⊟ιΣκ⁶⸿⸿»”|QºWPD⟧zNφ[v?Π'vG”◧IΣEυΣι²⁸J±¹±¹FE¹³⁻²⁷⊗ι«B⁵⁵ιB⁴⁹ι¿‹ι²⁷«B³⁹ιB⁸ι

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

≔E¹¹⟦⟦⟧⁰S⟧θ

11 नामों में पढ़ें (इनपुट लचीला है: JSON, अंतरिक्ष अलग, या नई रेखा अलग) और q11 बल्लेबाजों की एक सरणी बनाएं , उनकी गेंदों (एक सरणी के रूप में), स्थिति (पूर्णांक के रूप में) और नाम द्वारा दर्शाया गया है।

≔⮌θη

बल्लेबाजों की उलटी कॉपी बनाएं h। यह उन बल्लेबाजों का प्रतिनिधित्व करता है जो बाहर नहीं हैं। अंतिम दो तत्व ऑफ और करंट बल्लेबाज हैं।

W⊖Lη«

कम से कम दो बल्लेबाज उपलब्ध होने पर दोहराएं।

≔⊟ηι

करने के लिए वर्तमान बल्लेबाज निकालें i

≔‽12.4/6ζ

में एक यादृच्छिक गेंद उत्पन्न करें z

⊞υζ

इसे पूर्वनिर्धारित खाली सूची का उपयोग करके गेंदों की समग्र सूची में जोड़ें u

⊞§ι⁰ζ

इसे वर्तमान बल्लेबाज की गेंदों में जोड़ें।

≔⎇⁼ζ/⁺²‽³⁼³⁰L§ι⁰ζ

यदि गेंद एक है /, तो एक यादृच्छिक स्थिति उत्पन्न करें 2..4, अन्यथा यदि बल्लेबाज की 30 वीं गेंद है, तो स्थिति को 1अन्यथा पर सेट करें 0

¿ζ§≔ι¹ζ⊞ηι

अगर बल्लेबाज बाहर है, तो बल्लेबाज की स्थिति को स्टोर करें अन्यथा बल्लेबाज को वापस बल्लेबाजी करने के लिए रखें।

¿⊖Lθ¿⁼¬﹪ΣEηLκ⁶¬ζ

यदि कम से कम दो बल्लेबाज़ बचे हैं, और बल्लेबाज बाहर हो गया है तो 6 गेंदें खेली गई हैं, तब ...

F⟦⊟η⊟η⟧⊞ηκ»

... उतार और वर्तमान बल्लेबाजों और उन्हें वापस रिवर्स क्रम में डाल दिया।

”|⁴B\[⎇⁻℅↧T`⁵·5KMK⟲M≦»→´⁶_⭆∨R▷↥l⁹KG…≦”

हेडर प्रिंट करें।

Fθ«

बल्लेबाजों पर लूप।

◨⊟ι⁷

बैटर का नाम प्रिंट करें।

◨Σ§ι⁰¦³²

बल्लेबाज की गेंदों को प्रिंट करें।

§⪪”(3⪪⪫⧴πZJL:∨XI±URD↗Σ9⟦FZ∕↖l⪪”⁷⊟ι

Not OutRetiredBowled Caught LBWलंबाई 7 के substrings में स्ट्रिंग विभाजन में अनुक्रमित करके बल्लेबाज की स्थिति प्रिंट करें ।

◧IΣE⊟ιΣκ⁶

बल्लेबाज के स्कोर को प्रिंट करें।

⸿⸿»

अगली पंक्ति के आरंभ में जाएं लेकिन एक

”|QºWPD⟧zNφ[v?Π'vG”◧IΣEυΣι²⁸

कुल प्रिंट करें।

J±¹±¹FE¹³⁻²⁷⊗ι«B⁵⁵ιB⁴⁹ι¿‹ι²⁷«B³⁹ιB⁸ι

सब कुछ के आसपास बक्से ड्रा।

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