ट्रैक
/
jq
jq
/
अभ्यास
/
फूलों का खेत
फूलों का खेत

फूलों का खेत

कठिन

परिचय

Flower Field लोकप्रिय गेम Minesweeper की एक दयालु पुनर्कल्पना है। खेल का उद्देश्य है बगीचे में सारे फूल ढूँढना, ऐसे संख्यात्मक संकेतों का उपयोग करके जो बताते हैं कि किसी वर्ग से सीधे सटे हुए (आड़ी, खड़ी या तिरछी दिशा में) कितने फूल हैं। Flower Field, Microsoft Windows के इटली, जर्मनी, दक्षिण कोरिया, जापान और ताइवान के क्षेत्रीय संस्करणों में शामिल था।

निर्देश

आपको एक तैयार फ्लावर फील्ड बगीचे के खाली खानों में फूलों की गिनती जोड़नी है। बगीचा खुद आयत (rectangle) के आकार का एक बोर्ड होता है, जो ऐसे खानों से बना है जो या तो खाली होते हैं (' ') या जिनमें एक फूल ('*') होता है।

हर खाली खाने के लिए गिनिए कि उसके आस-पास कितने फूल हैं (आड़ी दिशा, खड़ी दिशा या तिरछी दिशा में)। अगर उस खाली खाने के आस-पास कोई फूल नहीं है, तो उसे खाली ही रहने दीजिए। वरना उसे आस-पास के फूलों की गिनती से बदल दीजिए।

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

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

आपका कोड इसे इस तरह बदलेगा:

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

jq के लिए अतिरिक्त कमांड लाइन विकल्प

टेस्ट में आपको jq के लिए कुछ अतिरिक्त विकल्प दिखाई देंगे।

run jq -s -R -c -f flower-field.jq << 'END_INPUT'

ये क्या हैं?

  • -s

    यह "स्लर्प" मोड है। इनपुट को JSON ऑब्जेक्ट की स्ट्रीम की तरह संभालने के बजाय, पूरा इनपुट एक ऐरे में डाल दिया जाता है।

    $ seq 5 | jq -c '.'
    1
    2
    3
    4
    5
    $ seq 5 | jq -s -c '.'
    [1,2,3,4,5]
    
  • -R

    आपने -r शायद पहले देखा होगा, जो "रॉ" स्ट्रिंग आउटपुट करता है (कोट के बिना)। यह उसका उल्टा है। इनपुट की हर लाइन को एक स्ट्रिंग माना जाता है।

    दो उदाहरण:

    $ seq 5 | jq -R -c .
    "1"
    "2"
    "3"
    "4"
    "5"
    
    $ echo 42 | jq '. * 2'      # input is a JSON number
    84
    $ echo 42 | jq -R '. * 2'   # input is a JSON string
    "4242"
    

जब आप इन दोनों विकल्पों को साथ इस्तेमाल करते हैं, तो आपको स्ट्रिंग का ऐरे नहीं मिलता। पूरा इनपुट एक ही स्ट्रिंग के रूप में मिलता है, जिसमें लाइन के अंत के न्यूलाइन भी शामिल होते हैं।

$ seq 5 | jq -s -R -c .
"1\n2\n3\n4\n5\n"

इसे संभालना इस अभ्यास की चुनौती का हिस्सा है।

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

फूलों का खेत शुरू करने के लिए तैयार हैं?

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

फूलों का खेत को गहराई से जानिए!

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