संभव डुप्लिकेट:
Random number generator only generating one random numberकोड डीबगर के साथ कदम उठाने पर ही सही ढंग से चलता है?
मैं थोड़ा इस कुछ ही क्षणों पहले से विस्मित कर दिया गया था।
public blockType generateRandomBlock()
{
Random random = new Random();
int makeBlockOfType = random.Next(0, 100);
blockType t = blockType.normal;
if (makeBlockOfType <= 80 && makeBlockOfType >= 60)
{
t = blockType.blue;
}
else if (makeBlockOfType > 80 && makeBlockOfType <= 95)
{
t = blockType.orange;
}
else if (makeBlockOfType > 95 && makeBlockOfType <= 100)
{
t = blockType.green;
}
return t;
}
काफी सरल है, यह एक यादृच्छिक रूप से जनरेट संख्या के आधार पर एक enum
मान (सिस्टम समय की आधार पर): मैं निम्नलिखित कोड है। दुर्भाग्यवश कुछ अजीब कारणों से, मेरे पास सभी रंग एक या दूसरे रंग हैं, भले ही यह प्रत्येक ब्लॉक को गेम में डाला जा सके। हालांकि, जब मैं डीबगर के साथ इस माध्यम से कदम उठाता हूं और फिर कुछ रनों के बाद परिणाम देखता हूं, तो मुझे लगता है कि ब्लॉक अब उपलब्ध कराए गए अवसरों के आधार पर बहु रंगीन हैं। मैं थोड़ा उलझन में हूं कि यह क्यों हो रहा है।
इसके लिए मैं मोनोगेम का उपयोग कर रहा हूं जो माइक्रोसॉफ्ट के बजाय मोनो कंपाइलर का उपयोग करता है। क्या यह समस्या हो सकती है? मैंने इस कोड को कन्स्ट्रक्टर में डालने की कोशिश की है जहां से इसे कहा जा रहा है, लेकिन मुझे एक ही परिणाम मिल रहा है (मुझे लगता है कि कंपाइलर कोड को किसी भी तरह से रेखांकित करता है)।
मैंने विजुअल स्टूडियो को इसे चलाने के बजाए अलग-अलग दृश्य स्टूडियो को फिर से शुरू करने का प्रयास किया है; कोई बदलाव नहीं।
कोई भी सुझाव और सहायता की बहुत सराहना की जाती है!
कोशिश, कि मदद करनी चाहिए। –
'नया रैंडम()' बीज का उपयोग कर बीज, जो कई मिलीसेकंड के लिए स्थिर रहता है। – CodesInChaos
डीबग में काम करने का कारण यह है कि कॉल के बीच समय है और रैंडम वास्तव में अलग-अलग बीज प्राप्त करता है। – Archy