ट्रैक
/
C#
C#
/
अभ्यास
/
फुटबॉल मैच रिपोर्ट
फुटबॉल मैच रिपोर्ट

फुटबॉल मैच रिपोर्ट

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

परिचय

switch स्टेटमेंट

विकिपीडिया switch स्टेटमेंट को "एक तरह की चयन नियंत्रण व्यवस्था, जिसका उपयोग किसी वेरिएबल या एक्सप्रेशन की वैल्यू से प्रोग्राम के नियंत्रण प्रवाह को बदलने दिया जाता है" बताता है।

इस व्यवस्था में ये कीवर्ड शामिल होते हैं: switch, case, break और default.

सबसे सरल रूप में ये किसी प्रिमिटिव या स्ट्रिंग एक्सप्रेशन की जाँच करते हैं और उसकी वैल्यू के आधार पर फैसला करते हैं। उदाहरण:

string direction = GetDirection();
switch (direction)
{
    case "left":
        GoLeft();
        break;
    case "right":
        GoRight();
        break;
    default:
        MarkTime();
        break;
}

सबसे जटिल रूप में ये डाउन कास्टिंग case <Type> <variable>: और गार्ड (when) को सामने लाते हैं।

Animal animal = GetAnimal();

switch (animal)
{
    case Dog canine:
    case Coyote canine:
        canine.Bark();
        break;
    case Cat cat when cat.HasOnly8Lives():
        cat.IsCareful();
        cat.Meow();
        break;
    case Cat cat:
        cat.Meow();
        break;
}

निर्देश

आप एक ऐसा सिस्टम बना रहे हैं जो एक फुटबॉल क्लब की वेबसाइट के कर्मचारियों को मैचों की रिपोर्ट तैयार करने में मदद करता है। यह सिस्टम मैच के अलग-अलग पहलुओं का विश्लेषण करता है, चाहे वे मैदान पर हों या मैदान के बाहर, और उन्हें इवेंट की एक स्ट्रीम में बदल देता है।

1. शर्ट नंबर के आधार पर खिलाड़ियों का विवरण दीजिए

यह टीम हमेशा 4-3-3 फॉर्मेशन में ही खेलती है और 1965 में नियमों में हुए उस बदलाव से कभी सहमत नहीं हुई, जिसने सब्स्टिट्यूशन की अनुमति दी थी। बड़े स्क्वाड की बात तो छोड़ ही दीजिए।

खिलाड़ियों का विवरण इस प्रकार है:

1 -> "goalie"
2 -> "left back"
3 & 4 -> "center back"
5 -> "right back"
6, 7 & 8 -> "midfielder"
9 -> "left wing"
10 -> "striker"
11 -> "right wing"

शर्ट नंबर के आधार पर खिलाड़ी का विवरण देने के लिए static PlayAnalyzer.AnalyzeOnField() मेथड बनाइए।

PlayAnalyzer.AnalyzeOnField(10);
// => "striker"

2. अज्ञात शर्ट नंबरों को संभालिए

PlayAnalyzer.AnalyzeOnField() मेथड को बदलिए ताकि जब 1-11 के दायरे से बाहर का कोई शर्ट नंबर प्रोसेस किया जाए, तो यह UNKNOWN बताए।

3. मैदान के बाहर की गतिविधियों तक कवरेज बढ़ाइए

PlayAnalyzer.AnalyzeOffField() मेथड बनाइए, जो खेल के मैदान के आसपास होने वाली गतिविधियों और वहाँ मौजूद लोगों का विवरण दे। यह मेथड अलग-अलग तरह का डेटा लेता है। इस डेटा का विश्लेषण करके उसे उचित टेक्स्ट में बदलना है, ताकि पत्रकारों की मदद हो सके।

शुरू करने के लिए हम स्टेडियम से जुड़े डेटा को देखेंगे:

  • स्टेडियम में मौजूद दर्शकों की वर्तमान संख्या (कोई भी int)
  • स्टेडियम के PA सिस्टम से की गई घोषणाएँ (कोई भी string)

अज्ञात तरह के डेटा को प्रोसेस नहीं करना चाहिए, इसलिए अगर मेथड को किसी और तरह का डेटा मिले, तो उसे एक खाली स्ट्रिंग लौटानी चाहिए।

PlayAnalyzer.AnalyzeOffField(5000);
// => "There are 5000 supporters at the match."

PlayAnalyzer.AnalyzeOffField("5 minutes to go!");
// => "5 minutes to go!"

PlayAnalyzer.AnalyzeOffField(0.5);
// => ""

4. मैच के दौरान होने वाली घटनाओं की जानकारी दीजिए

PlayAnalyzer.AnalyzeOffField() मेथड को बदलिए ताकि यह मैच के दौरान होने वाली घटनाओं का विवरण दे।

घटना Incident टाइप की कोई भी सबक्लास हो सकती है, और उसमें उस घटना का विवरण होगा। चोटें एक खास तरह की घटना हैं। उनकी वजह से मैच रोकना पड़ता है, इसलिए उन्हें अलग तरीके से संभालना चाहिए।

PlayAnalyzer.AnalyzeOffField(new Foul());
// => "The referee deemed a foul."

PlayAnalyzer.AnalyzeOffField(new Injury(8));
// => "Oh no! Player 8 is injured. Medics are on the field."

5. क्लब मैनेजरों की जानकारी दीजिए

PlayAnalyzer.AnalyzeOffField() मेथड को बदलिए ताकि यह मैच के दौरान मौजूद क्लब मैनेजरों का भी उल्लेख करे।

मैनेजर Manager टाइप के इंस्टेंस होते हैं और उनका एक नाम होता है, साथ ही उस क्लब का नाम भी, जिसे वे संभालते हैं। मैनेजर का क्लब अज्ञात हो सकता है, और ऐसी स्थिति में उसे null पर सेट किया जाएगा। अगर मैनेजर का क्लब ज्ञात नहीं है, तो उसे विवरण में शामिल नहीं करना चाहिए।

PlayAnalyzer.AnalyzeOffField(new Manager("José Mário dos Santos Mourinho Félix", null));
// => "José Mário dos Santos Mourinho Félix"

PlayAnalyzer.AnalyzeOffField(new Manager("Jürgen Klopp", "Liverpool"));
// => "Jürgen Klopp (Liverpool)"
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
C# Exercism

फुटबॉल मैच रिपोर्ट शुरू करने के लिए तैयार हैं?

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