Exemplo n.º 1
0
        private static IEnumerable <PositionPair> BuildPositionPairs(this Board board, Position start, Direction direction)
        {
            var increment = GetIncrement(direction);
            var current   = start + increment;
            var previous  = Maybe <Position> .Nothing;

            while (board.IsInBounds(current))
            {
                yield return(new PositionPair(previous, current));

                previous = current.ToMaybe();
                current += increment;
            }
        }
Exemplo n.º 2
0
 private bool AllNeighborsAreDifferent(Position position)
 => position.Neighbors
 .Where(neighbor => _board.IsInBounds(neighbor))
 .All(neighbor => !_board[position].Equals(_board[neighbor]));