08. FELADAT · FORRÁSKÓD

Kosárlabda-edzés

Program.cs letöltése
namespace Feladat08_KosarlabdaDobasok
{
    internal class Program
    {
        static void Main(string[] args)
        {
            const int DOBASOK_SZAMA = 20;

            Console.WriteLine("=== Kosárlabda-edzés: büntetődobások rögzítése ===");
            Console.WriteLine("Minden dobás után nyomd le a megfelelő billentyűt:");
            Console.WriteLine("  t = talált, bármely más billentyű = kihagyott");
            Console.WriteLine();

            int talalatok = 0;
            int aktualisSorozat = 0;
            int leghosszabbSorozat = 0;
            int sorozatVege = 0;

            for (int i = 1; i <= DOBASOK_SZAMA; i++)
            {
                Console.Write($"{i}. dobás: ");
                char billentyu = Console.ReadKey().KeyChar;
                Console.WriteLine();

                if (billentyu == 't' || billentyu == 'T')
                {
                    talalatok++;
                    aktualisSorozat++;

                    if (aktualisSorozat > leghosszabbSorozat)
                    {
                        leghosszabbSorozat = aktualisSorozat;
                        sorozatVege = i;
                    }
                }
                else
                {
                    aktualisSorozat = 0;
                }
            }

            int kihagyottak = DOBASOK_SZAMA - talalatok;
            double arany = talalatok * 100.0 / DOBASOK_SZAMA;

            Console.WriteLine();
            Console.WriteLine("--- Edzésjelentés ---");
            Console.WriteLine($"Talált dobások:    {talalatok} db");
            Console.WriteLine($"Kihagyott dobások: {kihagyottak} db");
            Console.WriteLine($"Találati arány:    {arany:F1}%");

            if (leghosszabbSorozat > 0)
            {
                int sorozatEleje = sorozatVege - leghosszabbSorozat + 1;
                Console.WriteLine($"Leghosszabb találati sorozat: {leghosszabbSorozat} dobás (a {sorozatEleje}. dobástól a {sorozatVege}. dobásig)");
            }
            else
            {
                Console.WriteLine("Nem volt egyetlen találat sem.");
            }

            Console.WriteLine($"Értékelés: {Ertekeles(arany)}");
        }

        static string Ertekeles(double arany)
        {
            string szoveg;

            if (arany < 40)
            {
                szoveg = "gyenge – sokat kell még gyakorolni";
            }
            else if (arany < 60)
            {
                szoveg = "megfelelő";
            }
            else if (arany < 80)
            {
                szoveg = "jó";
            }
            else
            {
                szoveg = "kiváló";
            }

            return szoveg;
        }
    }
}