ट्रैक
/
C#
C#
/
अभ्यास
/
अंतरिक्ष में ज़मीन पर कब्ज़ा
अंतरिक्ष में ज़मीन पर कब्ज़ा

अंतरिक्ष में ज़मीन पर कब्ज़ा

सीखने का अभ्यास

परिचय

स्ट्रक्ट

C# में struct और class एक-दूसरे से बहुत मिलते-जुलते हैं। इनमें स्थिति और व्यवहार दोनों होते हैं। इनके कंस्ट्रक्टर आर्गुमेंट लेते हैं, इंस्टेंस को असाइन किया जा सकता है और उनकी समानता की जाँच की जा सकती है। इंस्टेंस को संग्रह में भी रखा जा सकता है।

enum Unit
{
    Kg,
    Lb
}
struct Weight
{
    private double count;
    private Unit unit;

    public Weight(double count, Unit unit)
    {
        this.count = count;
        this.unit = unit;
    }

    public override string ToString()
    {
        return count.ToString() + unit.ToString();
    }
}

new Weight(77.5, Unit.Kg).ToString();
// => "77.6Kg"

निर्देश

Isaacs Asteroid Exploration Co. के क्लेम विभाग ने आपको उनके भूमि दावा सिस्टम का प्रदर्शन बेहतर बनाने का काम सौंपा है।

हर बार जब कोई नया क्षुद्रग्रह उपयोग के लिए तैयार होता है, तो सट्टेबाज़ों को भूमि के एक टुकड़े पर अपना दावा करने के लिए आमंत्रित किया जाता है। क्षुद्रग्रह की भूमि चार भुजाओं वाले प्लॉटों में बाँटी गई है। सट्टेबाज़ प्लॉट के आयाम बताकर उस पर अपना दावा करते हैं।

आपको एक ऐसा तेज़ सिस्टम बनाना है जो भूमि के लिए इस होड़ को संभाल सके, जिसकी वजह से पहले वेबसाइट क्रैश हो चुकी है।

माप की इकाई 100 मीटर है, लेकिन इन कामों में इस पर ध्यान देने की ज़रूरत नहीं है।

1. एक प्लॉट बनाइए

Plot स्ट्रक्चर का कार्यान्वयन पूरा कीजिए। इस स्ट्रक्चर में चार coord स्ट्रक्चर होते हैं, जिन्हें यह अपने कंस्ट्रक्टर में स्वीकार करता है।

2. सट्टेबाज़ आयामों से पहचाने जाने वाले प्लॉट का दावा दर्ज कर सकते हैं

दावा दर्ज करने की सुविधा देने के लिए ClaimsHandler.StakeClaim() मेथड लागू कीजिए।

कोई दावा दर्ज हुआ है या नहीं, यह देखने के लिए ClaimsHandler.IsClaimStaked() मेथड लागू कीजिए।

var ch = new ClaimsHandler();
ch.StakeClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
ch.IsClaimStaked(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
// => true

3. जाँचिए कि मौजूदा दावा पिछले दावे जैसा ही है या नहीं

मौजूदा दावे की तुलना पिछले दावे से करने के लिए ClaimsHandler.IsLastClaim() मेथड लागू कीजिए।

var ch = new ClaimsHandler();
ch.StakeClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
ch.IsLastClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
// => true

4. शोध के उद्देश्य से सबसे लंबी भुजा वाला दावा किया गया प्लॉट ढूँढिए

सभी दर्ज दावों की जाँच करके सबसे लंबी भुजा वाला प्लॉट लौटाने के लिए ClaimsHandler.GetClaimWithLongestSide() मेथड लागू कीजिए। किसी प्लॉट के निर्देशांक हमेशा एक ही जुड़े हुए आयताकार आकार में होते हैं।

var ch = new ClaimsHandler();
ch.StakeClaim(new Plot(new Coord(1,1), new Coord(2,1), new Coord(1,2), new Coord(2,2)));
ch.StakeClaim(new Plot(new Coord(10,1), new Coord(20,1), new Coord(10,2), new Coord(20,2)));
ch.GetClaimWithLongestSide();
// => new Plot(new Coord(1,1), new Coord(20,1), new Coord(1,2), new Coord(2,2))
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
C# Exercism

अंतरिक्ष में ज़मीन पर कब्ज़ा शुरू करने के लिए तैयार हैं?

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