private bool IsUniquePinColor(Pin[] i_GoalPinSequence, eColors i_Color, int i_MaxIterator)
        {
            bool result   = true;
            int  iterator = 0;

            foreach (Pin currentPin in i_GoalPinSequence)
            {
                if (iterator < i_MaxIterator)
                {
                    if (i_Color == currentPin.Color)
                    {
                        result = false;
                        break;
                    }
                    else
                    {
                        iterator++;
                    }
                }
                else
                {
                    break;
                }
            }

            return(result);
        }
        private Pin[] GeneratePinGoalSequence()
        {
            Pin[]  goalPinsSequence = new Pin[GProperties.PinsSequenceLength];
            Random randomizer       = new Random();

            for (int i = 0; i < goalPinsSequence.Length; i++)
            {
                int     colorNumber = randomizer.Next(GProperties.NumberOfPinColors);
                eColors color       = (eColors)colorNumber;
                if (i > 0)
                {
                    while (!IsUniquePinColor(goalPinsSequence, color, i))
                    {
                        colorNumber = randomizer.Next(GProperties.NumberOfPinColors);
                        color       = (eColors)colorNumber;
                    }
                }

                goalPinsSequence[i] = new Pin(color);
            }

            return(goalPinsSequence);
        }
 private static char ConvertColorToChar(eColors i_Color)
 {
     return((char)((int)'A' + (int)i_Color));
 }