예제 #1
0
        public void Should_GenerateOneMoveSouthWest()
        {
            // execute
            ChessPosition position = _mover.SouthWest(ChessPosition.B2);

            // verify
            Assert.AreEqual(ChessPosition.A1, position);
        }
예제 #2
0
        private ChessPosition GenerateCaptureWest(IBoardState enemyPieces, IChessPieceMover cpm)
        {
            ChessPosition potentialCapture =
                Color == ChessColor.White ? cpm.NorthWest(Location) : cpm.SouthWest(Location);
            bool isPieceAtCaptureLocation = enemyPieces.Contains(potentialCapture);

            return(isPieceAtCaptureLocation ? potentialCapture : ChessPosition.None);
        }
예제 #3
0
        private void GenerateSouthWestMoves(IBoardState boardState, IChessPieceMover cpm)
        {
            ChessPosition nextMove = cpm.SouthWest(Location);

            if (!boardState.Contains(nextMove))
            {
                MoveSet.Add(nextMove);
            }
        }
예제 #4
0
        private void GenerateWestSouthWestMove(IBoardState boardState, IChessPieceMover cpm)
        {
            ChessPosition move = cpm.West(cpm.SouthWest(Location));

            if (!boardState.Contains(move))
            {
                MoveSet.Add(move);
            }
        }
예제 #5
0
        private void GenerateSouthWestCaptures(IBoardState enemyBoardState, IChessPieceMover cpm)
        {
            ChessPosition capture = cpm.SouthWest(Location);

            AddCaptureToCaptureSet(capture, enemyBoardState);
        }
예제 #6
0
 private ChessPosition GenerateThreatenedWest(IChessPieceMover cpm)
 {
     return(Color == ChessColor.White ? cpm.NorthWest(Location) : cpm.SouthWest(Location));
 }