private void CheckChars(CharToCheck charToCheck) { if (Sheet.Pattern[charToCheck.LineIndex][charToCheck.CharIndex] == '#') { Sheet.Pattern[charToCheck.LineIndex][charToCheck.CharIndex] = '.'; AddNeighbours(charToCheck.LineIndex, charToCheck.CharIndex); } }
private void CheckInitialIsHash(int lineIndex, int charIndex) { var initialCharacter = Sheet.Pattern[lineIndex][charIndex]; var charToCheck = new CharToCheck() { LineIndex = lineIndex, CharIndex = charIndex }; if (initialCharacter == '#') { CharsToCheck.Add(charToCheck); Counter += 1; } while (CharsToCheck.Count > 0) { var character = CharsToCheck.First(); CharsToCheck.Remove(character); CheckChars(character); } }
private void AddNeighbours(int lineIndex, int charIndex) { if (charIndex + 1 < Sheet.Pattern[lineIndex].Count) { var charToCheck = new CharToCheck() { LineIndex = lineIndex, CharIndex = charIndex + 1 }; CharsToCheck.Add(charToCheck); } if (lineIndex + 1 < Sheet.Pattern.Count) { var charToCheck = new CharToCheck() { LineIndex = lineIndex + 1, CharIndex = charIndex }; CharsToCheck.Add(charToCheck); } if (charIndex > 0) { var charToCheck = new CharToCheck() { LineIndex = lineIndex, CharIndex = charIndex - 1 }; CharsToCheck.Add(charToCheck); } if (lineIndex > 0) { var charToCheck = new CharToCheck() { LineIndex = lineIndex - 1, CharIndex = charIndex }; CharsToCheck.Add(charToCheck); } }