'टिल यू ड्रॉप


18

Dungeons & Dragons 5th Edition (साथ ही अधिकांश अन्य संस्करण) में, एक जादुई वस्तु मौजूद है जिसे कई चीजों का डेक कहा जाता है । यह एक अविश्वसनीय रूप से शक्तिशाली वस्तु है, क्योंकि कार्डों में बहुत मजबूत सकारात्मक या नकारात्मक प्रभाव होते हैं। डेक का उपयोग करने के लिए, एक वर्ण एक संख्या घोषित करता है, और फिर क्रम में लागू होने वाले प्रभावों के साथ, उस संख्या को कार्ड तक खींचता है। यदि चरित्र उन सभी कार्डों को नहीं खींचता है जो उन्होंने घोषित किए थे, और अंतिम कार्ड के ड्रा होने में कम से कम 1 घंटे का समय लगा है, तो बाकी कार्ड स्वचालित रूप से उनके लिए तैयार किए जाते हैं और लागू किए गए प्रभाव। प्रत्येक कार्ड तैयार होने के बाद, इसे डेक पर लौटा दिया जाता है, और डेक को फेर दिया जाता है।

निम्नलिखित ताश के पत्तों की प्रत्येक ड्राइंग के प्रभाव की एक सूची है 1 :

  • संतुलन : आपका मन एक भयावह परिवर्तन से ग्रस्त है, जिससे आपका संरेखण बदल जाता है। कानून अराजक हो जाता है, अच्छाई बुराई बन जाती है, और इसके विपरीत। यदि आप सच्चे तटस्थ या अविवाहित हैं, तो इस कार्ड का आप पर कोई प्रभाव नहीं पड़ता है।
  • धूमकेतु : यदि आप अकेले ही अगले शत्रुतापूर्ण राक्षस या आपके द्वारा सामना किए गए राक्षसों के समूह को पराजित करते हैं, तो आप एक स्तर हासिल करने के लिए पर्याप्त अनुभव प्राप्त करते हैं। अन्यथा, इस कार्ड का कोई प्रभाव नहीं पड़ता है।
  • डोंजन : आप गायब हो जाते हैं और एक प्रत्यर्पण क्षेत्र में निलंबित एनीमेशन की स्थिति में फंस जाते हैं। जब आप गायब हो जाते हैं तो आप जिस चीज पर कब्जा कर लेते हैं, उसके पीछे आप जो पहनते हैं और ले जाते हैं वह सब कुछ होता है। आपको तब तक कैद में रखा जाता है जब तक आपको पाया नहीं जाता और गोले से निकाल नहीं दिया जाता। आप किसी भी अटकल जादू से स्थित नहीं हो सकते हैं, लेकिन एक इच्छा जादू आपके जेल के स्थान को प्रकट कर सकता है। आप कोई और कार्ड नहीं बनाते हैं।
  • Euryale । कार्ड के मेडुसा-जैसी दृष्टि आपको शाप देती है। आप इस तरह से शापित होने पर बचत करने वाले थ्रो पर -2 जुर्माना लेते हैं। केवल भगवान या फेट्स कार्ड का जादू इस अभिशाप को समाप्त कर सकता है।
  • द फेट्स : रियलिटी फैब्रिक अनवेल्स एंड स्पिन्स एन्यू, आपको एक घटना से बचने या मिटाने की अनुमति देता है जैसे कि यह कभी नहीं हुआ। आप कार्ड का जादू इस्तेमाल कर सकते हैं जैसे ही आप कार्ड या किसी अन्य समय पर मरते हैं।
  • ज्वाला : एक शक्तिशाली शैतान आपका दुश्मन बन जाता है। शैतान आपकी बर्बादी की तलाश करता है और आपके जीवन को नुकसान पहुँचाता है, आपको मारने की कोशिश करने से पहले आपके दुखों को दूर करता है। यह दुश्मनी तब तक चलती है जब तक कि आप या शैतान मर नहीं जाते।
  • मूर्ख : आप 10,000 XP खो देते हैं, इस कार्ड को छोड़ देते हैं, और डेक से फिर से ड्रा करते हैं, दोनों को आपके घोषित ड्रॉ में से एक के रूप में गिना जाता है। अगर उस बहुत से XP को खोने से आपको एक स्तर खोना होगा, तो आप एक राशि खो देते हैं जो आपको अपने स्तर को बनाए रखने के लिए सिर्फ पर्याप्त XP के साथ छोड़ देती है।
  • रत्न : गहनों के पच्चीस टुकड़े जिनकी कीमत प्रत्येक gp के १,००० gp या पचास ग्राम रत्न हैं, जो आपके चरणों में दिखाई देते हैं।
  • इडियट : स्थायी रूप से 1d4 + 1 (1 के न्यूनतम स्कोर पर) द्वारा अपने इंटेलिजेंस को कम करें। आप अपने घोषित ड्रॉ से परे एक अतिरिक्त कार्ड बना सकते हैं।
  • जस्टर : आप 10,000 एक्सपी हासिल करते हैं, या आप अपने घोषित ड्रॉ से परे दो अतिरिक्त कार्ड बना सकते हैं। इस कार्ड को ड्राइंग के बाद छोड़ दें।
  • कुंजी : एक दुर्लभ या दुर्लभ जादू हथियार जिसके साथ आप कुशल हैं, आपके हाथों में दिखाई देता है। जीएम हथियार चुनता है।
  • नाइट : आप एक 4-स्तरीय सेनानी की सेवा प्राप्त करते हैं जो आपके द्वारा 30 फीट के भीतर आपके द्वारा चुने गए स्थान पर दिखाई देता है। सेनानी आपकी ही जाति का है और मृत्यु तक आपको निष्ठा से सेवा करता है, यह विश्वास करते हुए कि भाग्य ने उसे आपके पास खींच लिया है। आप इस चरित्र को नियंत्रित करते हैं।
  • चंद्रमा : आपको 1d3 बार काश मंत्र देने की क्षमता दी जाती है।
  • दुष्ट : जीएम की पसंद का एक नॉनप्लेयर चरित्र आपके प्रति शत्रुतापूर्ण हो जाता है। आपके नए दुश्मन की पहचान तब तक नहीं होती जब तक कि NPC या कोई और उसे प्रकट नहीं करता। एक इच्छा जादू या दैवीय हस्तक्षेप से कम कुछ भी नहीं है जो आपके प्रति एनपीसी की दुश्मनी को समाप्त कर सकता है।
  • बर्बाद : सभी प्रकार की संपत्ति जो आप ले जाते हैं या खुद के पास, जादू की वस्तुओं के अलावा, आपके लिए खो जाती है। पोर्टेबल संपत्ति गायब हो जाती है। व्यवसाय, भवन, और भूमि जो आप खुद खो चुके हैं, एक तरह से खो जाते हैं, जो वास्तविकता को कम से कम बदल देता है। कोई भी दस्तावेज जो यह साबित करता है कि आपको इस कार्ड के लिए खोई हुई चीज़ को भी गायब करना चाहिए।
  • खोपड़ी । आप मौत के एक अवतार को बुलवाते हैं - एक भूतिया ह्युमोनोइड कंकाल एक काले रंग के बागे में और एक वर्णक्रमीय स्केथ ले। यह आपके द्वारा 10 फीट के भीतर जीएम की पसंद की जगह में दिखाई देता है और आप पर हमला करता है, अन्य सभी को चेतावनी देता है कि आपको अकेले लड़ाई जीतनी चाहिए। जब तक आप मर नहीं जाते तब तक अवतार लड़ता है या यह 0 हिट बिंदुओं तक गिरता है, जिससे यह गायब हो जाता है। अगर कोई आपकी मदद करने की कोशिश करता है, तो सहायक अपनी मृत्यु के अवतार को बुलाता है। मौत के एक अवतार द्वारा मारे गए एक प्राणी को जीवन में बहाल नहीं किया जा सकता है।
  • स्टार : अपने क्षमता स्कोर में से एक 2 को बढ़ाएं। स्कोर 20 से अधिक हो सकता है, लेकिन 24 से अधिक नहीं हो सकता है।
  • सूर्य : आप 50,000 XP प्राप्त करते हैं, और एक चमत्कारिक वस्तु (जिसे जीएम अनियमित रूप से निर्धारित करता है) आपके हाथों में दिखाई देती है।
  • तलवार : हर जादू की वस्तु जो आप पहनते हैं या विघटित करते हैं। आपके कब्जे में कलाकृतियों को नष्ट नहीं किया जाता है लेकिन गायब हो जाते हैं।
  • सिंहासन : आप अनुनय कौशल में दक्षता हासिल करते हैं, और आप उस कौशल के साथ किए गए चेक पर अपनी प्रवीणता बोनस को दोगुना कर देते हैं। इसके अलावा, आप दुनिया में कहीं भी एक छोटे से रखने का सही स्वामित्व प्राप्त करते हैं। हालाँकि, यह वर्तमान में राक्षसों के हाथों में है, जिसे आपको अपने बनाए रखने का दावा करने से पहले स्पष्ट करना चाहिए।
  • विज़ियर : किसी भी समय आप इस कार्ड को खींचने के एक वर्ष के भीतर चुनते हैं, आप ध्यान में एक प्रश्न पूछ सकते हैं और मानसिक रूप से उस प्रश्न का एक सच्चा उत्तर प्राप्त कर सकते हैं। जानकारी के अलावा, जवाब आपको एक समस्या या अन्य दुविधा को हल करने में मदद करता है। दूसरे शब्दों में, ज्ञान यह कैसे लागू करने के लिए ज्ञान के साथ आता है।
  • शून्य : यह काला कार्ड आपदा का कारण बनता है। आपकी आत्मा आपके शरीर से खींची गई है और जीएम की पसंद के स्थान पर एक वस्तु में निहित है। एक या अधिक शक्तिशाली प्राणी जगह की रक्षा करते हैं। जबकि आपकी आत्मा इस तरह से फंस गई है, आपका शरीर अक्षम है। एक इच्छा मंत्र आपकी आत्मा को बहाल नहीं कर सकता है, लेकिन वर्तनी उस वस्तु के स्थान को प्रकट करती है जो इसे धारण करती है। आप कोई और कार्ड नहीं बनाते हैं।

( डी एंड डी 5 वें संस्करण एसआरडी से कॉपी किए गए कार्ड विवरण )

कुछ विशेष रूप से मूर्ख खिलाड़ी एक ही बार में बड़ी संख्या में कार्ड बनाएंगे, जो हानिकारक कार्डों को संतुलित करने के लिए कम से कम एक शक्तिशाली वरदान पाने की उम्मीद करते हैं। जैसा कि कोई उम्मीद कर सकता है, इससे अक्सर चरित्र की मृत्यु या कार्ड को जारी रखने में असमर्थता का परिणाम होता है।

चुनौती

कई चीज़ों के 22-कार्ड डेक से बार-बार ड्राइंग को अनुकरण करें , प्रत्येक कार्ड को तैयार करना, केवल तब ही रोकना जब निम्न में से कोई एक शर्त पूरी हो:

  • फेट्स या मून एक्टिव 2 के लाभ के बिना, चरित्र की मृत्यु हो जाती है ( खोपड़ी खींचने के माध्यम से , या लपटों या दुष्टों को चित्रित करने के बाद 5 कार्डों को खींचने के लिए )।
  • चरित्र अधिक कार्ड खींचने में असमर्थ है ( डोनजोन के प्रभाव के माध्यम से , टॉलंस , द वॉयड 3 , या चरित्र का इंटेलिजेंस स्कोर इडियट 4 के माध्यम से 3 या उससे कम हो जाता है )।

नियम

  • चरित्र के संरेखण, स्तर, एक्सपी, और डेक के अलावा संपत्ति कोई फर्क नहीं पड़ता।
  • चरित्र का इंटेलिजेंस स्कोर 10 से शुरू होता है।
  • चरित्र की इंटेलिजेंस या इच्छा के उनके भंडारित उपयोग की कोई अधिकतम सीमा नहीं है ।
  • द फ़ेट्स के उपयोग ढेर नहीं हैं।
  • इच्छा जादू के कारण चरित्र कभी नहीं उपयोग करने के लिए सक्षम होने के लिए की एक 1-इन-3 मौका है इच्छा जादू फिर से, अपने नियमित प्रभाव के अलावा। यदि ऐसा होता है, तो वर्ण अब ज्वाला , दुष्ट , या को नकारने के लिए वर्तनी का उपयोग नहीं कर सकता है खोपड़ी - द फेट्स की शक्ति उनका एकमात्र सहारा है।
  • चरित्र हमेशा निम्नलिखित विकल्प बनाता है:
    • द फेट्स और मून का उपयोग पूरी तरह से खोपड़ी , आग की लपटों और दुष्ट से चरित्र को बाहर निकालने के लिए किया जाता है । चरित्र कभी भी उन्हें टालोन्स के प्रभाव को उलटने के लिए उपयोग नहीं करेगा या इच्छा स्पेल को फिर से कास्ट नहीं किया जा सकता है, और उन्हें डोनजोन और द वॉयड के प्रभावों को उलटने के लिए उपयोग नहीं कर सकता है । चरित्र तुरंत एक इच्छा वर्तनी का उपयोग करेगा खोपड़ी , लपटों , या दुष्ट के प्रभावों को नकारने के लिए उनमें से एक को आकर्षित करने पर, और यह हमेशा सफल होगा। चरित्र हमेशा उपयोग करने से पहले द फेट्स का उपयोग करेगाइच्छा
    • चरित्र हमेशा इडियट और जस्टर (उचित रूप से) के प्रभाव के साथ अधिक कार्ड खींचने का विकल्प चुनता है ।
    • स्टार का प्रभाव हमेशा 2 से बुद्धिमत्ता को बढ़ाने के लिए उपयोग किया जाता है, ताकि इडियट के प्रभाव से ड्रॉइंग कार्ड को रोकने के लिए ।
  • नाइट द्वारा सम्‍मिलित एनपीसी सहयोगी पात्र को उनके असामयिक निधन से बचाने के लिए पर्याप्त शक्तिशाली नहीं है।
  • इंटेलिजेंस में कोई वृद्धि या घट जाती है ( स्टार या इडियट के माध्यम से , क्रमशः) आउटपुट में परिलक्षित होना चाहिए (या तो परिवर्तन ( +2या -(1d4+1)) को नोट करके , या प्रभाव के बाद वर्तमान इंटेलिजेंस स्कोर को आउटपुट करके)।
  • की संख्या में कोई भी परिवर्तन इच्छा का उपयोग करता है चरित्र खरीदकर भंडार है इसी तरह उत्पादन में परिलक्षित होना चाहिए एक सहित, इच्छा नहीं उपयोग करने के लिए सक्षम होने के लिए चरित्र के कारण इच्छा अब नहीं कर सकता है।
  • सभी यादृच्छिक चयन समान असतत वितरण से हैं।
  • आप तैयार किए गए कार्ड के लिए आउटपुट के लिए 22 अलग-अलग आउटपुट का कोई भी सेट चुन सकते हैं - कार्ड के नामों का उपयोग करने की आवश्यकता नहीं है।
  • आप इंटेलिजेंस में परिवर्तन, उपयोग की इच्छा , और अपने चयन के किसी भी सुसंगत, स्पष्ट तरीके से अनुपयोगी बनने की इच्छा कर सकते हैं।
  • चरित्र मौत से बचने के लिए इच्छा शक्ति या द फेट्स की शक्ति का उपयोग कर सकता है यदि दुष्ट कार्ड ड्राइंग के बाद पांचवें कार्ड के रूप में तैयार किया गया है या लपटें । केवल अगर इच्छा अनुपयोगी है या सभी का उपयोग किया गया है, साथ ही साथ द फेट्स समय में तैयार नहीं है या पहले से ही उपयोग किया गया है, तो चरित्र मर जाएगा।
  • फ़ूल और जस्टर को ड्रॉ होने के बाद छोड़ दिया जाता है। अन्य सभी कार्ड तुरंत डेक पर वापस आ जाते हैं, और डेक को फिर से बदल दिया जाता है।
  • यदि दुष्ट और / या लौ के कई ढेर हैं सक्रिय हैं, तो द फ़ेट्स का केवल एक उपयोग या इच्छा उन सभी को दूर करने के लिए आवश्यक है।
  • जेस्टर या फ़ूल के माध्यम से एक बार में कई कार्डों को आकर्षित करना चालू काउंटर को आगे नहीं बढ़ाता है लपटों और / या दुष्ट बढ़ाता है

उदाहरण

प्रत्येक पंक्ति ड्रॉ के एक अनुक्रम का प्रतिनिधित्व करती है। इंटेलिजेंस में परिवर्तन और इच्छा का उपयोग कोष्ठक में वर्तमान मूल्य द्वारा दिखाया गया है। एक इच्छा उपयोग के Cआगे यह दर्शाता है कि इच्छा का उपयोग अब और नहीं किया जा सकता है। यह दर्शाता है कि मृत्यु से बचने के लिए द फ़ेट्स की शक्ति का उपयोग किया गया था। अतिरिक्त टिप्पणियां व्याख्यात्मक उद्देश्यों के लिए प्रदान की जाती हैं, पायथन शैली की टिप्पणियों के रूप में।F

Void # Can't draw with your soul ripped out of your body.
Throne, Euryale, Rogue, Star (12), Donjon # Can't draw while in suspended animation.
Moon (3), Throne, Sun, Flames (2), Fool, Idiot (6), Flames (1 C), The Fates, Skull (F), Skull # Two uses of wish were used on the two Flames draws. The second use rendered the character unable to use wish again. The Fates was used on the first Skull. When the second Skull came up, there was no way for the character to save himself, so he died.
Idiot (5), Star (7), Idiot (3) # Too dumb to draw.
Sun, Star (12), Talons # Talons destroys the deck.
Fates, Throne, Moon (2), Fates, Skull (F), Skull # Fates doesn't stack
Fates, Flames, Euryale, Fates, Skull, Void
Flames, Comet, Euryale, Gem, Knight, Key # 5 draws after Flames, the hero dies
Rogue, Balance, Throne, Gem, Idiot (8), Vizier, Sun # 5 draws plus one extra from Idiot

संदर्भ कार्यान्वयन

#!/usr/bin/env python3

import random

deck="""Sun
Moon
Star
Throne
Key
Knight
Void
Flames
Skull
Ruin
Euryale
Rogue
Jester
Vizier
Comet
Fates
Gem
Talons
Idiot
Donjon
Balance
Fool""".split()

random.shuffle(deck)

int_stat = 10
wish_uses = 0
wish_expired = False
fates = False
turn_count = None

while True:
    card = deck.pop()
    if card == "Fates":
        if turn_count is None:
            fates = True
            print(card)
        else:
            turn_count = None
            fates = False
            print("{} (F)".format(card))
    elif card == "Moon":
        wish_uses += random.randint(1, 3)
        if turn_count is None:
            print("{} ({})".format(card, wish_uses))
        else:
            turn_count = None
            wish_uses -= 1
            print("{} ({}) ({})".format(card, wish_uses+1, wish_uses))
    elif card in ["Flames", "Rogue"]:
        if turn_count is None:
            turn_count = 5
        if fates:
            fates = False
            turn_count = None
            print("{} (F)".format(card))
        elif wish_uses > 0 and not wish_expired:
            wish_uses -= 1
            turn_count = None
            wish_now_expired = random.choice([False, False, True])
            print("{} ({}{})".format(card, wish_uses, " C" if wish_expired else ""))
            wish_expired = wish_now_expired
        else:
            print("{}".format(card))
    elif card == "Idiot":
        int_stat -= random.randint(2, 5)
        print("{} ({})".format(card, int_stat))
        if turn_count is not None:
          turn_count += 1
        if int_stat <= 3:
            break
    elif card == "Star":
        int_stat += 2
        print("{} ({})".format(card, int_stat))
    elif card == "Skull":
        if fates:
            fates = False
            turn_count = None
            print("{} (F)".format(card))
        elif wish_uses > 0 and not wish_expired:
            wish_uses -= 1
            turn_count = None
            wish_now_expired = random.choice([False, False, True])
            print("{} ({}{})".format(card, wish_uses, " C" if wish_expired else ""))
            wish_expired = wish_now_expired
        else:
            print(card)
            break
    elif card in ["Donjon", "Void", "Talons"]:
        print(card)
        break
    elif card == "Fool":
        print(card)
        if turn_count is not None:
            turn_count += 1
    elif card == "Jester":
        print(card)
        if turn_count is not None:
            turn_count += 2
    else:
        print(card)
    if card not in ["Fool", "Jester"]:
        deck.append(card)
        random.shuffle(deck)
    if turn_count is not None:
        turn_count -= 1
    if turn_count == 0:
        break

[१]: तकनीकी रूप से, दो संस्करण हैं: १३ कार्ड के साथ, और एक २२ कार्ड के साथ। हम केवल पूर्ण 22-कार्ड संस्करण के बारे में चिंतित हैं।

[२]: लौ और दुष्ट आम तौर पर चरित्र को नहीं मारते हैं, लेकिन शत्रुतापूर्ण NPC को लगता है कि मूर्ख चरित्र को खोजने और मारने के बाद उनके पास 5 और कार्ड बनाने का समय है। खोपड़ी द्वारा बुलाए गए दर्शक को लड़ना बेहद मुश्किल है, और यह माना जाता है कि चरित्र जीत नहीं पाता है। द फेट्स या के माध्यम से केवल दिव्य / जादुई हस्तक्षेप मून के इन 3 कार्डों से मूर्ख चरित्र को उनकी मृत्यु से बचा सकता है।

[३]: हम मानते हैं कि चरित्र के दोस्त काफी चालाक होते हैं कि वे चरित्र को बचाने की कोशिश न करें और उन्हें अधिक कार्ड बनाने की अनुमति दें।

[४]: ३ का एक इंटेलिजेंस स्कोर लगभग एक जंगली जानवर के बराबर है, जो सक्रिय रूप से कार्ड बनाने का विकल्प नहीं बना पाएगा।



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

आपका संदर्भ कार्यान्वयन इच्छा को समाप्त नहीं होने देता है यदि वह उस क्षण का उपयोग करता है जिसे चंद्रमा खींचा गया है। और यह भी जाँच नहीं करता है कि क्या वे पहले ही समाप्त हो चुके हैं।
मार्टिन एंडर

एक और बात: मूल डी एंड डी नियमों में इडियट, फुल और जस्टर के सभी के लिए अतिरिक्त कार्ड का उल्लेख है। आपके नियम पहले बताते हैं कि खिलाड़ी इडियट और जस्टर के लिए अतिरिक्त कार्ड बनाता है, लेकिन फिर फ़ूल और जस्टर के लिए नियम काउंटर को स्पष्ट करता है, और आपका संदर्भ कार्यान्वयन फ़ूल और जस्टर के लिए केवल अतिरिक्त कार्ड आकर्षित करता है। क्या आप इसे स्पष्ट / ठीक कर सकते हैं?
मार्टिन एंडर

2
@steenbergh मैंने इसे पहले भी पढ़ा था, लेकिन " प्रत्येक कार्ड के ड्रा होने के बाद, इसे डेक पर लौटा दिया जाता है, और डेक को फेर दिया जाता है। " खींचे जाने पर केवल फ़ूल और जस्टर को हटा दिया जाएगा, बाकी सब कुछ फिर से डेक में रखा जाता है और हर बार एक नया कार्ड तैयार होने से पहले फेरबदल किया जाता है।
केवि क्रूज़सेन

जवाबों:


5

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

for(D=[...Array(21)].map((a,b)=>b),d={},i=10,w=e=f=t=0,F=_=>f=t=o=0,W=_=>{w--,t=0,o=w+(e?' C':''),e=1>r(2)},r=a=>0|Math.random()*a,$=1;$;){for(;d[c=r(22)];);o='',c?3>c?(t&&(t+=c),d[c]=1):4>c?f?F():0<w&&!e?W():$=0:7>c?$=0:9>c?(!t&&(t=5),f?F():0<w&&!e&&W()):10>c?(w+=1+r(2),t?(t=0,o=[w,--w]):o=w):11>c?(i-=2+r(3),o=i,$=3<i):12>c&&(i+=2,o=i):t?F():f=1,console.log(c,o),t&&(t--,$=t)}

Ungolfed

आउटपुट की व्याख्या

कार्ड 0-21 से लेकर निम्नानुसार हैं:

  • 0: भाग्य
  • 1: मूर्ख
  • 2: जस्टर
  • 3: खोपड़ी
  • 4: डोनजॉन
  • 5: शून्य
  • 6: टैलेंट
  • 7: ज्वाला
  • 8: दुष्ट
  • 9: चंद्रमा
  • 10: बेवकूफ
  • 11: स्टार
  • 12 हालांकि 21: सन, सिंहासन, की, नाइट, रुइन, एयुरेल, विज़ियर, धूमकेतु, जेम, बैलेंस

द फेट्स के माध्यम से खोपड़ी, लपटों या दुष्ट का एक उलट, ए के साथ निरूपित किया जाता है 0


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

कार्ड नामों का उपयोग करने वाला पिछला संस्करण, इससे पहले कि मुझे पता चला कि किसी भी 22 अलग आउटपुट की अनुमति है।

d=`Sun Moon Star Throne Key Knight Void Flames Skull Ruin Euryale Rogue Jester Vizier Comet Fates Gem Talons Idiot Donjon Balance Fool`.split` `,i=10,w=0,W=!1,f=!1,t=null,F=()=>{f=!1,t=null,_('F')},U=()=>{w--,t=null,_(w+(W?' C':'')),W=1>r(2)},_=(...a)=>console.log(c+a.map(b=>` (${b})`).join``),r=a=>0|Math.random()*a,$=!0;for(;$;)c=d.splice(r(d.length),1)[0],'Fates'==c?null==t?(f=!0,_()):F():'Moon'==c?(w+=1+r(2),null==t?_(w):(t=null,w--,_(w+1,w))):'Idiot'==c?(i-=2+r(3),_(i),3>=i&&($=!1)):'Star'==c?(i+=2,_(i)):'Flames'==c||'Rogue'==c?(null==t&&(t=5),f?F():0<w&&!W?U():_()):'Skull'==c?f?F():0<w&&!W?U():(_(),$=!1):'Donjon'==c||'Void'==c||'Talons'==c?(_(),$=!1):'Fool'==c?null!==t&&(t+=1):'Jester'==c?null!==t&&(t+=2):_(),['Fool','Jester'].includes(c)||d.push(c),null!==t&&t--,0===t&&($=!1)

Ungolfed


2
@ ईमानदारी से कहूं, तो मुझे वास्तव में ऐसा नहीं मिला और जब तक मुझे यह जवाब नहीं मिला, अच्छी तरह से किया गया था; पूरा नाम देखने पर समझने में आसान। यदि आप इसे बदलते हैं तो क्या आप पूर्ण नामों के साथ एक संस्करण रख सकते हैं?
मैजिक ऑक्टोपस Urn

@MagicOctopusUrn निश्चित रूप से, मैं भविष्य में वर्तमान पूर्ण नाम संस्करण को संरक्षित करना सुनिश्चित करूंगा।
darrylyeo 16

@ इसे ओपी में निर्देशित किया गया था, और बस कह रहा था "वास्तविक कार्ड नामों के साथ संस्करण ने पूरी तरह से वर्तनी को आसान बना दिया है। यदि आप बाइट्स को बंद कर देते हैं, तो इसे एक भी रखें, जिसे 'अनफॉर्म्ड' के रूप में लेबल किया गया है।"
मैजिक ऑक्टोपस Urn

@MagicOctopusUrn अपडेट किया गया।
darrylyeo

2

जावा 10, 481 480 476 470 453 439 437 बाइट्स

v->{var r="";Math M=null;int i=10,d=22,c,F=0,t=0,w=0,W=0,j=2;for(j*=M.random();;){c=d;c*=M.random();r+=" "+c;t=c<1?(r+=t<(F=1)?"":"F"+(F=0))==""?-1:-1:c<2?0*(w+=M.random()*3-(t>0?1:2)):c<4?F>0?-1:t<1?6:t:c<5?F*w*W>(F=0)?-1:1:c>19?t+(t>0*d--*j++?j%2+1:0):t;if(c>1&c<5&w*W>0){w--;W=(int)(M.random()*3)%2;}i-=c==5?M.random()*3+2:c==6?-2:0;r+=c>1&c<5&F>0?"F"+(F=0):c>0&c<5?"w"+w+"W"+W:c>4&c<7?"i"+i:"";if(--t==0|c==5&i<4|c>6&c<10)return r;}}

जावा में पायथन 3 संदर्भ कार्यान्वयन को पोर्ट किया गया, और फिर इसे नीचे गिरा दिया गया।

-45 बाइट्स @ceilingcat की बदौलत

कार्ड आउटपुट:

0: भाग्य
1: चंद्रमा
2: ज्वाला
3: दुष्ट
4: खोपड़ी
5: इडियट
6 : स्टार
7/ 8/ 9: डोंजन / शून्य / टैलेंट्स
20/ 21: फ़ूल / जस्टर

10-19: बाकी सब कुछ (सूर्य / सिंहासन / कुंजी / नाइट / बर्बाद / यूरेल / विज़ियर / धूमकेतु / रत्न / शेष)

बायीं इच्छाओं के लिए आउटपुट प्रारूप, उपयोग की गई इच्छाएं, बुद्धि छोड़ दी गई और ध्वज का उपयोग किया गया:

4w1W0
4       // Card drawn
 w1     // New amount of wishes left
   W0   // Whether the wishes used flag is active (1) or inactive (0)

5i6
5       // Card drawn
 i6     // New intelligence

0F0
0       // Card drawn
 F0     // Fates used

स्पष्टीकरण:

इसे यहाँ आज़माएँ या सुंदर-मुद्रित आउटपुट के साथ यहाँ आज़माएँ

v->{                       // Method with empty unused parameter and String return-type
  var r="";                //  Result-String, starting empty
  Math M=null;             //  Static Math to save bytes
  int i=10,                //  Intelligence, starting at 10
      d=22,                //  Amount of cards in the deck, starting at 22
      c,                   //  Current card drawn
      F=0,                 //  Fates flag, starting at inactive
      t=0,                 //  Turn-counter, starting at 0
      w=0,                 //  Wishes left, starting at 0
      W=0,                 //  Wishes used flag, starting at 0
      j=2;for(j*=M.random()//  Whether Jester/Fool is drawn first of the two, random 0/1
      ;;){                 //  Loop indefinitely:
    c=d;c*=M.random();     //   Draw a random 0-21 card (or less if Fool/Jester is gone)
    r+=" "+c;              //   Append the result with a space and this card
    t=c<1?                 //   If the card was Fates:
      (r+=t<(F=1)          //    Set the Fates-flag to active
                 ?         //    And if the turn-counter is 0:
        ""                 //     Append nothing
      :                    //    Else (the turn-counter is larger than 0):
       "F"+(F=0))          //     Append that Fates was used (and make Fates inactive)
      ==""?-1:-1           //    Then set the turn-counter to -1 (none)
    :c<2?                  //   If the card was Moon instead:
      0*(w+=M.random()*3   //    Increase the wishes by 0-2 randomly
         -(t>0?            //    Then, if the turn-counter is larger than 0
            0              //     Leave the (0-based random) wishes the same
           :               //    Else:
            1))            //     Subtract 1 from the (0-based random) wishes
      -1                   //    Set the turn-counter to -1 (none)
    :c<4?                  //   If the card was Flames or Rogue instead:
      F>0?                 //    If the Fates-flag is active:
       -1                  //     Set the turn-counter to -1 (none)
      :t<1?                //    Else-if the turn-counter is 0 or -1 (none):
       6                   //     Set the turn-counter to 6
      :                    //    Else:
       t                   //     Leave the turn-counter the same
    :c<5?                  //   If the card was Skull instead:
        F                  //    If the Fates-flag is inactive
        *w                 //    or the amount of wishes is smaller than 1
        *W<1               //    or the wishes used flag is inactive
            +0*(F=0)?      //    (And set the Fates-flag to inactive)
         1                 //     Set the turn-counter to 1
        :                  //    Else:
         -1                //     Set the turn-counter to -1 (none)
    :c>19?                 //   If the card was Fool or Jester instead:
      t+(t>0*d--           //    Remove the Fool/Jester from the Deck
            *j++           //    And increase `j` (Fool/Jester) by 1
                ?          //    If the turn-counter was not 0 or -1 (none):
          j%2+1            //     Increase either by 1 (Fool) or 2 (Jester)
         :                 //    Else:
          0)               //     Leave the turn-counter the same by increasing with 0
    :                      //   Else:
     t;                    //    Leave the turn-counter unchanged
    if(c>1&c<5             //   If the card drawn was Flames, Rogue or Skull,
       &w                  //   and the amount of wishes is at least 1,
        *W>0){             //   and the wishes used flag is active
      w--;                 //    Decrease the amount of wishes by 1
      W=(int)(M.random()*3)%2;}
                           //    And set the wishes used flag to one of (0,0,1)
    i-=c==5?               //   If the card drawn was Idiot:
        M.random()*3+2     //    Decrease the intelligence by 2-5 randomly
       :c==6?              //   Else-if the card drawn was Star:
        -2                 //    Increase the intelligence by 2
       :                   //   Else:
        0;                 //    Leave the intelligence the same
    r+=c>1&c<5             //   If the card drawn was Flames, Rogue or Skull,
       &F>0?               //   and Fates is active
        "F"+(F=0)          //    Append that Fates was used (and make Fates inactive)
       :c>0&c<5?           //   Else-if the card drawn was Moon, Flames, Rogue or Skull:
        "w"+w+"W"+W        //    Append the amount of wishes left and wishes used flag
       :c>4&c<7?           //   Else-if the card drawn was Idiot or Star:
        "i"+i              //    Append the amount of intelligence left
       :                   //   Else:
        "";                //    Append nothing
    if(--t                 //   Decrease the turn-counter by 1
          ==0              //   And if the turn-counter is now 0,
       |c==5               //   or the card drawn was Idiot,
             &i<4          //   and the intelligence dropped below 4,
       |c>6&c<10)          //   or the card drawn was Donjon, Void or Talons:
         return r;}}       //    Return the result of the game

1
Jester; Fates; Ruin; Euryale; Gem; Ruin; Ruin; Rogue(Fates used) Gem; Balance; Throne; Rogue(wishes left: 0; wishes used: 0); Rogue(wishes left: 0; wishes used: 0);यह बंद क्यों हुआ?
फ्राईफ्रॉग

@FrownyFrog धन्यवाद! अब तय होना चाहिए। यदि आप कोई अन्य गलती करते हैं, तो मुझे बताएं। :)
केविन क्रूज़सेन 21

0

Kotlin , 1173 बाइट्स

fun main(args:Array<String>){val d="Sun Moon Star Throne Key Knight Void Flames Skull Ruin Euryale Rogue Jester Vizier Comet Fates Gem Talons Idiot Donjon Balance Fool".split(" ");var c=(Math.random()*22).toInt();var i=10;var u=0;var e=false;var f=false;var t=1;r@while(true){when(c){15->{if(t>=1){f=true;println(c)}else{t = 1;f = false;println("${d[c]} (F)")}}1->{u+=(Math.random()*3).toInt()+1;if(t>=1){println("${d[c]} ($u)")}else{t=1;u-=1;println("${d[c]} (${u + 1}) ($u)")}}in arrayOf(7,11)->{if(t>=1){t=5};if(f){f=false;t=1;println("${d[c]} (F)")}else if(u>0&&!e){u-=1;t=1;val n=(Math.random()*3).toInt();println("${d[c]} ($u$e)");e=n==0}else{println(d[c])}}18->{i-=(Math.random()*4).toInt()+2;println("${d[c]} ($i)");if (t!=0){t+=1};if(i<=3){break@r}}2->{i+=2;println("${d[c]} ($i)")}8->{if(f){f=false;t=1;println("${d[c]} (F)")}else if(u>0&&!e){u-=1;t=1;val n=(Math.random()*3).toInt();println("${d[c]} ($u$e)");e=n==0}else{println(c);break@r}}in arrayOf(6,17,19)->{println(d[c]);break@r}21->{println(d[c]);if(t!=0){t += 1}}12->{println(d[c]);if(t!=0){t+=2}}else->{println(d[c])}};if((c !in arrayOf(12,21))){c=(Math.random()*23).toInt()};if(t!=0){t-=1}else{break}}}

यह चलाने योग्य भी है। - यह ऑनलाइन कोशिश करो!

शायद बहुत सारे कीड़े हैं ... मुझे टिप्पणियों में बताएं!


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