diff --git a/Day4/Program.cs b/Day4/Program.cs index db1dba5..2a236da 100644 --- a/Day4/Program.cs +++ b/Day4/Program.cs @@ -14,7 +14,7 @@ int FindMas(char[,] grid) var rows = grid.GetLength(0); var cols = grid.GetLength(1); - var directions = new[,] + var searchDirections = new[,] { { -1, 1 }, // diagonal up right { 1, 1 }, // diagonal down right @@ -24,13 +24,13 @@ int FindMas(char[,] grid) List masCenterCoordinates = new(); - for (var r = 0; r < rows; r++) + for (var row = 0; row < rows; row++) { - for (var c = 0; c < cols; c++) + for (var column = 0; column < cols; column++) { - for (var d = 0; d < directions.GetLength(0); d++) + for (var direction = 0; direction < searchDirections.GetLength(0); direction++) { - var masCoordinates = CheckWord(r, c, directions[d, 0], directions[d, 1], grid, "MAS"); + var masCoordinates = CheckWord(row, column, searchDirections[direction, 0], searchDirections[direction, 1], grid, "MAS"); if (masCoordinates != null) { masCenterCoordinates.Add($"{masCoordinates[1][0]},{masCoordinates[1][1]}"); @@ -50,7 +50,7 @@ int FindXmas(char[,] grid) var cols = grid.GetLength(1); var xmasCount = 0; - var directions = new[,] + var searchDirections = new[,] { { -1, 0 }, // up { 0, 1 }, // right @@ -62,13 +62,13 @@ int FindXmas(char[,] grid) { 1, -1 } // diagonal down left }; - for (var r = 0; r < rows; r++) + for (var row = 0; row < rows; row++) { - for (var c = 0; c < cols; c++) + for (var column = 0; column < cols; column++) { - for (var d = 0; d < directions.GetLength(0); d++) + for (var direction = 0; direction < searchDirections.GetLength(0); direction++) { - if (CheckWord(r, c, directions[d, 0], directions[d, 1], grid, "XMAS") != null) + if (CheckWord(row, column, searchDirections[direction, 0], searchDirections[direction, 1], grid, "XMAS") != null) { xmasCount++; } @@ -79,20 +79,20 @@ int FindXmas(char[,] grid) return xmasCount; } -List? CheckWord(int r, int c, int dr, int dc, char[,] grid, string word) +List? CheckWord(int row, int column, int directionRow, int directionColumn, char[,] grid, string word) { var characterCoordinates = new List(); for (var i = 0; i < word.Length; i++) { - var newR = r + i * dr; - var newC = c + i * dc; - if (!IsValid(newR, newC, grid) || grid[newR, newC] != word[i]) return null; + var newRow = row + i * directionRow; + var newColumn = column + i * directionColumn; + if (!IsValid(newRow, newColumn, grid) || grid[newRow, newColumn] != word[i]) return null; - characterCoordinates.Add([newR, newC]); + characterCoordinates.Add([newRow, newColumn]); } return characterCoordinates; } -bool IsValid(int r, int c, char[,] grid) => r >= 0 && r < grid.GetLength(0) && c >= 0 && c < grid.GetLength(1); \ No newline at end of file +bool IsValid(int row, int column, char[,] grid) => row >= 0 && row < grid.GetLength(0) && column >= 0 && column < grid.GetLength(1); \ No newline at end of file