परिचय
हाल ही में, मैं दोस्तों के एक समूह के साथ संदेह कर रहा था और हम ऊब गए थे और कुछ भी नहीं करना था, इसलिए हमने "गेम" का आविष्कार किया "(टिप्पणियों में कुछ लोगों ने बताया कि यह गेम ऑनलाइन खेलने योग्य है और बहुत लोकप्रिय है, इसलिए हम निश्चित रूप से इसका आविष्कार नहीं किया, हालाँकि मैंने इसे पहले नहीं देखा था)। "खेल" शब्द को मैंने उद्धरण चिह्नों में रखा है, क्योंकि यह एक वास्तविक कंप्यूटर गेम नहीं है, लेकिन यह विकिपीडिया पर खेला जाता है।
यह वास्तव में खेलना आसान है: कोई व्यक्ति लक्ष्य के रूप में कुछ विकिपीडिया लेख चुनता है। चलो मान लोइस उदाहरण के लिए कोड गोल्फ लेते हैं । सभी खिलाड़ियों को तब एक यादृच्छिक लेख से शुरू करना होता है (साइडबार में रैंडम आर्टिकल कोदबाकरया इस URL परजाकर) और आपको वर्तमान में जिस लेख में हैं, उसके केवल लिंक किए गए लेखों का उपयोग करके यथासंभव "लक्ष्य" प्राप्त करना होगा। नियमों में शामिल हैं:
- खोज फ़ंक्शन की अनुमति नहीं है (स्पष्ट रूप से)
- आप लेख के मुख्य पाठ में लिंक पर क्लिक कर सकते हैं (विशेष रूप से सभी पाठ के अंदर
<div id="bodyContent">) - यदि आपके रैंडम पेज या आपके किसी अन्य पेज पर कोई वैध लिंक (डेड लिंक, लूप, आदि) या कोई लिंक नहीं है तो आप फिर से रोल कर सकते हैं।
चुनौती
यहाँ तुम कहाँ आ गए: दुर्भाग्य से मैं इस खेल में बहुत बुरा हूँ, लेकिन मैं एक गंदा धोखेबाज़ भी हूँ। इसलिए मैं चाहता हूं कि आप मेरे लिए इस बॉट को लागू करें। मैं एक प्रोग्रामर भी हूं, इसलिए स्वाभाविक रूप से मेरी हार्ड डिस्क कोड, लाइब्रेरी और इस तरह के सामान से भरी हुई है और मेरे पास केवल कुछ बाइट्स करने के लिए मेमोरी है। इसलिए यह चुनौती है कोड गोल्फ, कम से कम बाइट्स जीत के साथ जवाब ।
कार्यान्वयन विवरण:
- बेशक आपको एक बुद्धिमान बॉट को लागू करने की आवश्यकता नहीं है जो विषयों के बीच कनेक्शन को जानता है और स्वचालित रूप से इष्टतम मार्ग का पता लगाता है। इस चुनौती के उद्देश्य के लिए ब्रूट फोर्सिंग पर्याप्त से अधिक है
- वास्तविक खेल में, समय मायने रखता है। आपके प्रोग्राम को लेख को खोजने में 1 घंटे से अधिक समय नहीं लगना चाहिए (यह यादृच्छिक खोजकर्ताओं की तरह खामियों से बचने के लिए है जो "अंततः" अनुमान लगाएगा)
- यदि लक्ष्य का कोई मार्ग नहीं पाया जा सकता है (जैसे मृत लिंक या एक लूप) तो आप नीचे दी गई सूची में से क्या चुन सकते हैं:
- छोड़ो (स्कोर वही रहता है)
- एक और यादृच्छिक लेख प्राप्त करें और फिर से कोशिश करें और छोरों पर कुछ भी न करें (स्कोर - = 10)
- मृत लिंक या लूप पर एक और यादृच्छिक लेख प्राप्त करें (स्वचालित रूप से लूप का पता लगाएं) (स्कोर - = 50)
- ("स्कोर" से मेरा मतलब है आपकी बाइट की गिनती यहाँ)
- यदि आप मार्ग को "ट्रेस" करते हैं, तो एक और 20 बोनस बाइट घटाया जाएगा, इसलिए आप अपने द्वारा देखे गए प्रत्येक व्यक्तिगत पृष्ठ का शीर्षक प्रिंट करते हैं।
- मानक नेटवर्क पुस्तकालयों का उपयोग किया जा सकता है (जैसे मैं "अपना नेटवर्क पुस्तकालय तैयार करता हूं जो विकिपीडिया लेखों को क्रॉल करता है")
- केवल एक चीज जो आपके नेटवर्क से संबंधित है, वह है विकिपीडिया पेज डाउनलोड करने के लिए एक HTTP अनुरोध भेजना
- यदि आपका प्रोग्राम पृष्ठ पाता है, तो उसे छोड़ देना चाहिए, लेकिन किसी तरह संकेत दें कि यह समाप्त हो गया है (वर्ण "f" या पृष्ठ का शीर्षक पर्याप्त है)
- मानक खामियों से बचा जाना चाहिए
मज़ा गोल्फ है!
(यह मेरा पहला प्रश्न यहाँ है, इसलिए कृपया उनका शोषण करने से पहले टिप्पणियों में स्पष्ट खामियों और गुत्थियों को इंगित करें - धन्यवाद: D)