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)); }