मोंटी हॉल समस्या का अनुकरण करने के बारे में पहले से ही एक सवाल है । यह एक अलग है। उपयोगकर्ता होगा खेलने मोंटी हॉल समस्या। आपका कार्यक्रम होस्ट की भूमिका निभाएगा। आप चाहें तो मोंटीबोट।
यहाँ कदम हैं:
- उठाओ (बेतरतीब ढंग से) जो तीन दरवाजे पुरस्कार छुपाता है।
- आउटपुट तीन दरवाजों का एक दृश्य प्रदर्शन। एक साधारण
ABCकरेगा। या तीन वर्ग। जो कुछ भी। - दरवाजों में से किसी एक को चुनने वाला इनपुट प्राप्त करें। यह चुने हुए दरवाजे पर माउस क्लिक, या एक एकल पत्र इनपुट (
B) या जो भी हो सकता है। - एक और दरवाजा खोलें। आप चुने हुए दरवाजे को नहीं खोलते हैं। आप मुख्य पुरस्कार को छिपाने का दरवाजा नहीं खोलते हैं। इसका मतलब हो सकता है कि आपके पास कोई विकल्प नहीं है, या इसका मतलब यह हो सकता है कि आपके पास दो विकल्प हैं। यदि आपके पास दो विकल्प हैं, तो यादृच्छिक पर एक चुनें। नेत्रहीन इंगित करते हैं कि दरवाजा खोला गया है और इसके पीछे कोई पुरस्कार नहीं छिपा है। एक प्रोग्राम टेक्स्ट-आधारित इनपुट / आउटपुट के लिए, यह आउटपुट के रूप में सरल हो सकता है, यह
AB0दिखाने के लिए कि दरवाजाCखोला गया है। अधिक आविष्कारशील होने के लिए स्वतंत्र महसूस करें। यदि आप GUI प्रोग्राम कर रहे हैं, तो आपकी पसंद का प्रदर्शन आपके ऊपर है। - उपयोगकर्ता से इनपुट स्वीकार करें। उपयोगकर्ता इनपुट
stickकर सकता है याswitch(या, GUI प्रोग्राम के लिए, बटन पर क्लिक कर सकता है, या चुनिंदा इनपुट का उपयोग कर सकता है, या जो भी हो)। उपयोगकर्ता अन्य कुछ भी दर्ज करता है की तुलना मेंstickयाswitch, कार्यान्वयन अपरिभाषित है। आप जो चाहे करें। - पाठ का आउटपुट
You won!याYou lost। - प्रोगम को समाप्त करें।
नियम:
- जब आपको यादृच्छिक पर कुछ चुनना हो , तो क्रिप्टोग्राफ़िक यादृच्छिकता के बारे में चिंता न करें। कोई भी
rand()फंक्शन करेंगे। - कार्यक्रम को धोखा नहीं देना चाहिए। खेल शुरू होने से पहले पुरस्कार होना चाहिए। यह कहना है कि दिए गए क्रम में चरणों का पालन किया जाना चाहिए: पहले एक दरवाजा चुनें, जिसके पीछे अपना पुरस्कार छिपाएं, फिर खिलाड़ी को चुनने के लिए कहें। चरण 4 में किस दरवाजे को खोलना है इसका विकल्प चरण 4 में होना चाहिए: यह पहले से चयनित नहीं है।
- चरण 6 में आउटपुट ईमानदार होना चाहिए।
- यह कोड गोल्फ है। सबसे छोटा कोड जीतता है।
मेरी पहली बार इस साइट पर पोस्टिंग है, लेकिन मैं बहुत पीछे हट गया, इसलिए मुझे लगता है कि मैं आपके मानदंडों से परिचित हूं।
—
टीआरआईजी
Meta.codegolf.stackexchange.com पर प्रश्नों के प्रस्ताव के लिए एक धागा है और लोगों को आधिकारिक तौर पर पोस्ट करने से पहले इसके साथ किसी भी समस्या को हल करने की अनुमति देता है। मुझे नहीं पता कि यहाँ कुछ विशेष रूप से गलत है, जिसे इस्त्री किया जा सकता है, लेकिन अगली बार के लिए जानना अच्छा हो सकता है।
—
अंडरग्राउंडोरेल
मैं पूर्वावलोकन कर रहा हूं कि विजेता सिर्फ एक और गोल्फस्क्रिप्ट उत्तर होगा ...
—
विक्टर स्टैफुसा
BTW, "आविष्कारशील होना" कोडगॉल्फिंग के साथ अच्छी तरह से नहीं चलता है, क्योंकि आविष्कारशील कुछ बाइट्स का उपभोग करता है और कोडगॉल्फिंग का उद्देश्य इसके विपरीत है।
—
विक्टर स्टैफुसा
हाँ, @ विक्टर। आविष्कारशील होना कोई आवश्यकता नहीं है। मैं सिर्फ (ए) कमांड लाइन कार्यक्रमों के लिए इसे सीमित नहीं करना चाहता था, और (बी) को यह पता नहीं था कि गैर-कमांड लाइन प्रोग्राम को उपयोगकर्ता के चयन को कैसे लागू करना चाहिए। इसलिए मैंने इसे उत्तरदाताओं तक छोड़ दिया। आविष्कारशील होना एक विकल्प है, लेकिन यह एक है जो अतिरिक्त अंक नहीं जुटाएगा।
—
टीआरआईजी