Chess Square Color C#

Здравейте, имам въпрос относно задача Chess Square Color от курса C# Fundamentals. Тъй като условиято на задачата поставя ограниченията a <= L <= h и 1 <= R <= 8, създадеох променлива valid, която проверява диапазона на подадените в конзилата стойности, и ако биквата е над h или цифрата е над 8 не принтира резултат:

using System;

namespace Chess
{
internal class Program
{
static void Main(string[] args)
{
string label = Console.ReadLine().ToLower();
int rank = int.Parse(Console.ReadLine());

        bool labelIsOdd = label == "a" || label == "c" || label == "e" || label == "g";
        bool rankIsOdd = rank % 2 == 1;
        bool valid = (label == "a" || label == "b" || label == "b" || label == "b"
            || label == "e" || label == "f" || label == "g" || label == "h") && rank > 0 && rank <= 8;

                    
        if (valid == true && labelIsOdd == true && rankIsOdd == true)
        {
            Console.WriteLine("dark");
        }
        else if (valid == true && labelIsOdd == true && rankIsOdd == false)
        {
            Console.WriteLine("light");
        }
        else if (valid == true && labelIsOdd == false && rankIsOdd == true)
        {
            Console.WriteLine("light");
        }
        else if (valid == true && labelIsOdd == false && rankIsOdd == false)
        {
            Console.WriteLine("dark");
        }
                    
    }
}

}

При така написания код програмата ми дава 60 точки. Ако премахна частта с проверката за валидност получавам 100 точки. Тъй като програмата не посочва какво точно въвежда при Test case # 4 и Test case # 5, където ми дава Wrong Answer, може ли някой да ми каже какъв е проблема с горния код? Без проверката на валидност програмата приема букви до Z и безкрайно големи числа, което не ми се вижда правилно.

Здравей,
обикновено просто в условието ти казват в какви рамки ще бъде инпутът и, освен ако изрично не е указано какво да правиш, ако е извън тези рамки, няма нужда да го валидираш.
При теб в случая не сработва валидацията, защото тук си копи-пейстнал и имаш 3 пъти “b”, вместо “b” , “c” и “d”. Ако оправиш това, ще сработи, но няма нужда от параметъра valid :slight_smile:

bool valid = (label == "a" || label == "b" || label == "b" || label == "b"
            || label == "e" || label == "f" || label == "g" || label == "h") && rank > 0 && rank <= 8;

Успех! :slight_smile:

1 Like

Толкова гледах дали няма грешки някъде и това пак съм го пропуснал. Благодаря!