public void ThereAre32ChessPiecesCreated() { var factory = new PiecesFactory(); var pieces = factory.Create(); Assert.AreEqual(32, pieces.Count()); }
public IChessGame Create() { var piecesFactory = new PiecesFactory(); var movementHistory = new MovementHistory(); var piecePromoter = new PiecePromoter(movementHistory); var castlingMover = new CastlingMover(movementHistory); var enPassantMover = new EnPassantMover(movementHistory); var pieceMover = new PieceMover(movementHistory, piecePromoter, castlingMover, enPassantMover); var chessBoard = new ChessBoard(piecesFactory, pieceMover); List <IMovement> movements = new(); var pawnMovement = new PawnMovement(chessBoard); var enPassantMovement = new EnPassantMovement(chessBoard); var kingMovement = new KingMovement(chessBoard); var horizontalMovement = new HorizontalMovement(chessBoard); var verticalMovement = new VerticalMovement(chessBoard); var pdiagonalMovement = new PositiveDiagonalMovement(chessBoard); var ndiagonalMovement = new NegativeDiagonalMovement(chessBoard); var knightMovement = new KnightMovement(chessBoard); movements.Add(pawnMovement); movements.Add(enPassantMovement); movements.Add(kingMovement); movements.Add(horizontalMovement); movements.Add(verticalMovement); movements.Add(pdiagonalMovement); movements.Add(ndiagonalMovement); movements.Add(knightMovement); var movementComposite = new MovementComposite(movements); List <IMovement> movementsWithCastling = new(); var queensideCastlingMovement = new QueensideCastlingMovement(chessBoard, movementComposite); var kingsideCastlingMovement = new KingsideCastlingMovement(chessBoard, movementComposite); movementsWithCastling.Add(movementComposite); movementsWithCastling.Add(queensideCastlingMovement); movementsWithCastling.Add(kingsideCastlingMovement); var movementCompositeWithCastling = new MovementComposite(movementsWithCastling); var promotionDetector = new PromotionDetector(chessBoard); var checkDetector = new CheckDetector(chessBoard, movementCompositeWithCastling); var legalMovement = new LegalMovement(chessBoard, movementCompositeWithCastling, checkDetector); var moveValidator = new MoveValidator(chessBoard, legalMovement, promotionDetector); var gameFinishedDetector = new GameFinishedDetector(checkDetector, legalMovement); return(new ChessGame(chessBoard, moveValidator, promotionDetector, gameFinishedDetector, legalMovement)); }
public PiecesFactoryTests() { factory = new PiecesFactory(); squares = MockBoard.MockSquares.Select(d => d.Value).ToList(); mockPlayerOne = new Mock <IPlayer>(); mockPlayerTwo = new Mock <IPlayer>(); playerOnePieces = factory.GetPlayerPieces(squares.GetRange(0, 16), mockPlayerOne.Object); playerTwoPieces = factory.GetPlayerPieces(squares.GetRange(48, 16), mockPlayerTwo.Object); }
public void ThereAre8WhitePawnsCreated() { var factory = new PiecesFactory(); var pieces = factory.Create(); var filteredPieces = pieces .Where(p => p.PieceType == ChessPieceType.Pawn && p.Color == ChessColor.White) .ToList(); Assert.AreEqual(8, filteredPieces.Count); }
public void ThereIsBlackKingCreated() { var factory = new PiecesFactory(); var pieces = factory.Create(); var filteredPieces = pieces .Where(p => p.PieceType == ChessPieceType.King && p.Color == ChessColor.Black) .ToList(); Assert.AreEqual(1, filteredPieces.Count); }