Професионална програма
Loading...
DStanev avatar DStanev 3 Точки

задача Дартс

https://pastebin.com/Nhqv6z2D

Здравейте нещо се увлякох и се збози всичко, помощ?

using System;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {

            string name = Console.ReadLine();
            int startPoints = 301;
            int goodShots = 0;
            int badShots = 0;
            while (startPoints != 0)
            {

               string shot = Console.ReadLine();

                if (shot == "Retire")
                {
                    Console.WriteLine($"{name} retired after {badShots} unsuccessful shots.");
                }

                int points = int.Parse(Console.ReadLine());

                if (shot == "Single")


                {
                    if (points <= startPoints && startPoints > 0)
                    {
                        startPoints -= points;
                        goodShots++;
                    }
                    else
                    { 
                        
                        badShots++;
                    }

                }


                if (shot == "Double")
                {
                    if (points <= startPoints && startPoints > 0)
                    {
                        startPoints -= points;
                        goodShots++;
                    }
                    else
                    {

                        badShots++;
                    }
                }

                if (shot == "Triple")
                {
                    if (points <= startPoints && startPoints > 0)
                    {
                        startPoints -= points;
                        goodShots++;
                    }
                    else
                    {

                        badShots++;
                    }
                }

                if (startPoints == 0)
                {
                    Console.WriteLine($"{name} won the leg with {goodShots} shots.");
                    break;
                }
                             

            }


        }
    }
}

Тагове:
0
Programming Basics with C#
MartinBG avatar MartinBG 3751 Точки

Решението има няколко дребни проблема:

  1. При Retire трябва да се прекъсне while цикъла:
                    if (shot == "Retire")
                    {
                        Console.WriteLine($"{name} retired after {badShots} unsuccessful shots.");
                        break; // fix
                    }


     

  2. При Double точките трябва да се удвоят:
     

                    if (shot == "Double")
                    {
                        points *= 2; // fix
                        // ...
                    }


     

  3. При Tripple точките трябва да се утроят:
     

                    if (shot == "Triple")
                    {
                        points *= 3; // the fix
                        // ...
                    }


     

Оправеното решение.

0
DStanev avatar DStanev 3 Точки

Благодаря! След работа седнах да пиша мързелашката и копи пейста не прощава, brake, го бях пропуснал, поне логиката е ок

1