Example #1
0
        public BackgroundDrawer()
        {
            _asciiCode = new AsciiCode();

            _code = "";

            for (var i = 0; i < 10; i++)
            {
                for (var ii = 0; ii < 50; ii++)
                {
                    _code += ii == 49 ? "\n" : "_";
                }
            }
        }
Example #2
0
        public static int SumAsciiDecimalCalculation(string word)
        {
            if (word == null)
            {
                throw new ArgumentNullException(nameof(word));
            }

            Dictionary <char, int> appearList = new Dictionary <char, int>();

            char[] characters = word.ToCharArray();
            char?  previous   = null;
            int    result     = 0;

            foreach (char character in characters)
            {
                // Skip repeat characters
                if (previous != null && previous == character)
                {
                    continue;
                }

                // Convert character to Enum
                AsciiCode asciiCode = (AsciiCode)Enum.Parse(typeof(AsciiCode), character.ToString(), false);

                // Check if the character has appeared before
                if (appearList.ContainsKey(character))
                {
                    // Increment appearance count
                    appearList[character]++;

                    // If a character appears more than once non-consecutively, its calculated value is its [decimal value] * [appearance count]
                    result += ((int)asciiCode * appearList[character]);
                }
                else
                {
                    appearList.Add(character, 1);
                    result += (int)asciiCode;
                }

                previous = character;
            }

            return(result);
        }