ट्रैक
/
Rust
Rust
/
अभ्यास
/
माइनस्वीपर
माइनस्वीपर

माइनस्वीपर

मध्यम

परिचय

Minesweeper एक लोकप्रिय गेम है। इसमें खिलाड़ी को संख्यात्मक संकेतों की मदद से बम ढूँढने होते हैं। ये संकेत बताते हैं कि किसी खाने के ठीक आसपास (आड़े, खड़े या तिरछे) कितने बम हैं।

निर्देश

आपको एक तैयार माइनस्वीपर बोर्ड के खाली खानों में माइनों की संख्या भरनी है। बोर्ड एक आयत होता है, जो ऐसे खानों से बना है जो या तो खाली (' ') होते हैं या माइन ('*')।

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

उदाहरण के लिए, आपको 5 x 4 का ऐसा बोर्ड मिल सकता है (यहाँ खाली जगहों को स्क्रीन पर दिखाने के लिए '·' अक्षर से दर्शाया गया है):

·*·*·
··*··
··*··
·····

आपके कोड को इसे इस तरह बदलना चाहिए:

1*3*1
13*31
·2*2·
·111·

प्रदर्शन संकेत

सभी इनपुट और आउटपुट ASCII में हैं। Rust के String और &str utf8 होते हैं, इसलिए जहाँ हमें "Hello".chars() सरल लग सकता है, वहाँ असल में उसे हर अक्षर की जाँच करनी पड़ती है कि वह 1, 2, 3 या 4 u8 लंबा है या नहीं। अगर हमें पता हो कि कोई &str ASCII है, तो हम .as_bytes() कॉल कर सकते हैं और अंदर के डेटा को &[u8] (बाइट स्लाइस) के रूप में देख सकते हैं। ASCII बाइट्स के स्लाइस पर इटरेशन करना कहीं तेज़ होता है, क्योंकि इसमें कोई कोडपॉइंट शामिल नहीं होता: हर ASCII बाइट एक u8 लंबी होती है।

क्या आप इनपुट को क्लोन किए बिना यह चैलेंज पूरा कर सकते हैं?

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Rust Exercism

माइनस्वीपर शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Rust को 99 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।

माइनस्वीपर को गहराई से जानिए!

हम नेस्टेड for लूप, बाउंड जाँच आसान बनाने के लिए min/max का चतुर उपयोग, फंक्शनल पाइपलाइन और द्वि-आयामी मैट्रिक्स देखेंगे।