Loading...
valenteeeen avatar valenteeeen 6 Точки

[C# Advanced] Exercises - Sets and Dictionaries - 08. Hands of Cards

Здравейте!

Написах(преписах) кода от видеотo

въпреки че го няма целия код никъде в окончателния му вид(това, което се копира от преподавателя и "субмитва" в Judge-a) и получих 33 точки.

Къде сгреших? Къде е разликата - грешката ми(Къде са разликите - грешките ми)?

Преподавателят "субмитна" в Judge-a кода, който аз преписах от него и получи 100 точки, а аз само 33 точки? 

Ето моя вариант на кода

1
C# Advanced 15/06/2017 12:07:29
warglaivee avatar warglaivee 59 Точки

https://gist.github.com/Warglaive/640b19ff5f099a809544beb1b43ddcc7
Някаква идея как да проверя дали елемент от новата ръка се съдържа в речника?

0
Nick97 avatar Nick97 0 Точки

Имате ли идея защо ми гърми нулевият тест?

using System;
using System.Collections.Generic;
using System.Linq;

namespace HandsOfCards
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] input = Console.ReadLine()
                .Trim().Split(new char[] { ',', ':', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
            Dictionary<string, Dictionary<string, int>> output = new Dictionary<string, Dictionary<string, int>>();
            while (input[0] != "JOKER")
            {
                if (!output.ContainsKey(input[0]))
                {
                    output.Add(input[0], new Dictionary<string, int>());
                }
                for (int i = 1; i < input.Length; i++)
                {
                    if (!output[input[0]].ContainsKey(input[i]))
                    {
                        output[input[0]].Add(input[i], GetValue(input[i].ElementAt(0), input[i].Last()));
                    }
                }
                input = Console.ReadLine()
                .Trim().Split(new char[] { ',', ':', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
            }
            foreach (var item in output)
            {
                
                Console.WriteLine($"{item.Key}: {item.Value.Values.Sum()}");
            }
        }
        static int PowOfHand(char ch)
        {
            switch (ch)
            {
                case '1': return 10;
                case '2': return 2;
                case '3': return 3;
                case '4': return 4;
                case '5': return 5;
                case '6': return 6;
                case '7': return 7;
                case '8': return 8;
                case '9': return 9;
                case 'J': return 11;
                case 'Q': return 12;
                case 'K': return 13;
                case 'A': return 14;
                case 'S': return 4;
                case 'H': return 3;
                case 'D': return 2;
                case 'C': return 1;
                default: return 0;
            }
        }
        static int GetValue(char a, char b)
        {
            return PowOfHand(a) * PowOfHand(b);
        }
    }
}

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