Професионална програма
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