public static List <int> GetEntireDiagonalByFile(int file, DiagonalDirectionFromFileNumber direction) { var list = new List <int>(); var increment = getDiagonalIncrement(direction); var numberOfSquares = howFarToGo(file, direction); var index = file; for (int i = 0; i < numberOfSquares; i++) { list.Add(index); index = index + increment; } return(list); }
private void testDiagonalLine(int file, DiagonalDirectionFromFileNumber direction, List <int> squares) { var diagonalLine = DiagonalEngine.GetEntireDiagonalByFile(_gameState, file, direction); TestUtility.ListContainsSquares(diagonalLine, squares); }
public static List <Square> GetEntireDiagonalByFile(GameState gameState, int file, DiagonalDirectionFromFileNumber direction) { var indexes = GetEntireDiagonalByFile(file, direction); var list = new List <Square>(); //optimize, a linq join here would perform better indexes.ForEach(a => list.Add(gameState.Squares.GetSquare(a))); return(list); }
private static int howFarToGo(int file, DiagonalDirectionFromFileNumber direction) { return(direction == DiagonalDirectionFromFileNumber.Left ? file + 1 : 8 - file); }
private static int getDiagonalIncrement(DiagonalDirectionFromFileNumber direction) { return(direction == DiagonalDirectionFromFileNumber.Left ? 7 : 9); }