Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        private void testDiagonalLine(int file, DiagonalDirectionFromFileNumber direction, List <int> squares)
        {
            var diagonalLine = DiagonalEngine.GetEntireDiagonalByFile(_gameState, file, direction);

            TestUtility.ListContainsSquares(diagonalLine, squares);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 private static int howFarToGo(int file, DiagonalDirectionFromFileNumber direction)
 {
     return(direction == DiagonalDirectionFromFileNumber.Left ? file + 1 : 8 - file);
 }
Ejemplo n.º 5
0
 private static int getDiagonalIncrement(DiagonalDirectionFromFileNumber direction)
 {
     return(direction == DiagonalDirectionFromFileNumber.Left ? 7 : 9);
 }