2013-01-17 16 views
5

इससे पहले कि मैं कुछ और कहूं, मैं यह उल्लेख करना चाहूंगा कि मैं कोडिंग के लिए लगभग पूरी तरह से नया हूं, और केवल पाइथन की एक बहुत ही प्राथमिक समझ है।मैं एक चर के लिए यादृच्छिक संख्या कैसे आवंटित करूं?

अब यह तरीका है कि, मेरी समस्या यह है कि मैं डी & डी के साथ एक टेक्स्ट एडवेंचर गेम को कोड करने का प्रयास कर रहा हूं। मैं शुरुआती चरण में फंस गया हूं- अर्थात्, कैसे असाइन करना है एक चर के लिए 1 और 18 के बीच एक यादृच्छिक पूर्णांक।

मैंने ऐसा करने के कुछ तरीके देखे हैं, लेकिन जब भी इसे कॉल किया जाता है तो वेरिएबल का मान बदल जाता है। ऐसा नहीं हो सकता है। इसका कारण यह है क्योंकि मैं आँकड़े (ताकत, बुद्धि, खुफिया, निपुणता, करिश्मा, और संविधान) को यादृच्छिक रूप से जेनरेट की गई लेकिन निश्चित संख्या के रूप में चाहता हूं, जिसे हर बार कहा जा सकता है और इसे समान बना दिया जा सकता है।

मैंने यादृच्छिक मॉड्यूल का उपयोग करते हुए Str = random.randomint(1,18) जैसी चीज़ों के साथ मिलकर कोशिश की है।

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

+0

यदि आप 6 पक्षों के 3 रोलों को अनुकरण कर रहे हैं, तो 3 और 18 के बीच यादृच्छिक नहीं होना चाहिए? –

+6

@ मार्सेलोएएसएसिस: नहीं, यह 1 और 6 के बीच 3 यादृच्छिक संख्याओं को एक साथ जोड़ा जाना चाहिए (हालांकि ओपी वास्तव में 3 डी 6 का उपयोग नहीं करता है)। – geoffspear

+0

@Wooble और 3 randoms का उपयोग करते समय परिणाम अलग होंगे? –

उत्तर

7

मैं तुम्हारे साथ बहुत करीब है कि तुम क्या कर रहे हैं देखते हैं:

Str = random.randomint(1,18) होना चाहिए Str = random.randint(1,18)

इस लाइन जो चर Str के लिए यादृच्छिक पूर्णांक प्रदान करती है, और जब आप Str के लिए पूछना आप मिलना चाहिए हर बार एक ही संख्या।

यदि आप Str = random.randint(1,18) पर कॉल करते रहते हैं तो यह हर बार Str बदल जाएगा। तो केवल इसे एक बार करो।

यदि आप classes के बारे में जानते हैं या समझते हैं तो आपको उन्हें अपने पात्र/आइटम/मंत्र/रोमांच/राक्षस इत्यादि रखने के लिए उपयोग करना चाहिए, जिसमें गुण और गुण और वस्तुएं इत्यादि हो सकती हैं, जैसे ही गेम में, आप सभी को समूहबद्ध करते हैं विभिन्न प्रकार के तहत चीजें।

ध्यान दें: आप आप, लैम्ब्डा इस्तेमाल किया मतलब हो सकता है कि यह है कि आप एक समारोह है जो एक यादृच्छिक चर हर बार रिटर्न के लिए Str सौंपा है, हर बार जब आप Str के लिए कहा, जिसका अर्थ है कि आप वास्तव में समारोह के लिए पूछ की जाएगी एक यादृच्छिक वापस जाने के लिए उल्लेख नंबर।

+1

यह 'random.randint' है,' random.randomint' मौजूद नहीं है :) – mgilson

+0

+1 ओपी वास्तव में क्या चाहता है समझने के लिए +1 :) –

+0

@mgilson धन्यवाद, मैंने ओपीएस कोड को बहुत बारीकी से देखे बिना कॉपी किया। –

1

कोडिंग में आपका स्वागत है।

मैं थोड़ी देर के लिए एक वेब डेवलपर रहा हूं और मैंने हाल ही में अपने दांतों को php (मेरी राय में) की तुलना में बेहतर चीजों में डुबोना शुरू कर दिया है। मैं भी उपयोग करता हूं:

Str = random.randomint(1,18) 

क्या आप आईडीई का उपयोग कर रहे हैं? मैंने पाया कि जब आप कोड पूर्ण होने के कारण पहली बार एक नई भाषा सीख रहे हैं तो वे बहुत अच्छे हैं। सिंटैक्स को देखने के लिए विभिन्न वेबसाइटों पर जाने के कारण, यह वास्तव में भाषा के चारों ओर अपने रास्ते को जानने में आपकी सहायता करता है। सौभाग्य! पाठ आधारित साहसिक खेल सीखने शुरू करने के लिए एक शानदार तरीका है!

संबंधित मुद्दे