Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

nadejda91iv avatar nadejda91iv 11 Точки

04. Game Number Wars - EXAM 9 и 10 мarch 2019

Здравейте колеги,

може ли малко помощ за задача от изпит през 2019. Логиката ми мисля е вярна, но имам някъде грешкаи не мога да разбера къде точно е . 

На последният изход имам грешка .

Изпращам линк към задачата и моя вариант на решение.

https://judge.softuni.bg/Contests/Practice/Index/1538#6

https://pastebin.com/XYrAiRhH

Може ли да ми помогнете ?

Благодаря предварително :)

Тагове:
0
Programming Basics
nickwork avatar nickwork 657 Точки
Best Answer

Грешките бяха :

1. Не прекъсваш програмата когато имаме Number wars (Освен при "Number wars", играта може да приключи и при команда "End of game")

2. При Number wars не добавяме допълнително точки към крайният резултат, а само определяме победителя.

3. Може би основното - при Number wars е напълно вероятно да имаме няколко подред последователни еднакви карти, именно заради това е добре това да се вкара в цикъл и да се върти докато имаме различни стойности (няма гаранция, че още първият път ще бъдат различни и играта ще приключи).

 

using System;

namespace Game_Number_Wars
{
    class Program
    {
        static void Main(string[] args)
        {
            string gamer1 = Console.ReadLine();//ОТ КОНЗОЛАТА 
            string gamer2 = Console.ReadLine();//

            int totalGamer1 = 0;
            int totalGamer2 = 0;

            string command = Console.ReadLine();//команда се въвежда от конзолата

            while (command != "End of game")
            {
                int card1 = int.Parse(command);// вътре в цикъла . като започва с команда
                int card2 = int.Parse(Console.ReadLine());
                if (card1 > card2)//първия е победител
                {
                    totalGamer1 += card1 - card2;
                }
                else if (card2 > card1)
                {
                    totalGamer2 += card2 - card1;
                }
                else//булевия израз става true  ,заради команда number wars
                {
                    while (true)
                    {
                        card1 = int.Parse(Console.ReadLine());
                        card2 = int.Parse(Console.ReadLine());

                        if (card1 > card2)
                        {

                            // card1 = card1 - card2;
                            //totalGamer1 = card1;
                            Console.WriteLine($"Number wars!");
                            Console.WriteLine($"{gamer1} is winner with {totalGamer1} points");
                            return;
                        }
                        else
                        {

                            //card2 = card2 - card1;
                            //totalGamer2 = card2;
                            Console.WriteLine($"Number wars!");
                            Console.WriteLine($"{gamer2} is winner with {totalGamer2} points");
                            return;
                        }
                    }
                }

                command = Console.ReadLine();
            }

            if (command == "End of game")
            {
                Console.WriteLine($"{gamer1} has {totalGamer1} points");
                Console.WriteLine($"{gamer2} has {totalGamer2} points");
            }
        }
    }
}

0
24/05/2020 10:51:49
nadejda91iv avatar nadejda91iv 11 Точки

Много благодаря за изчерпателния отговор.:)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.