Beispiel #1
0
 private void OrganizePieces()
 {
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.A, ELine.Two)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.B, ELine.Two)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.C, ELine.Two)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.D, ELine.Two)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.E, ELine.Two)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.F, ELine.Two)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.G, ELine.Two)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.H, ELine.Two)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(RookBuilder.New().WithPosition(new Position(EColumn.A, ELine.One)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(KnightBuilder.New().WithPosition(new Position(EColumn.B, ELine.One)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(BishopBuilder.New().WithPosition(new Position(EColumn.C, ELine.One)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(QueenBuilder.New().WithPosition(new Position(EColumn.D, ELine.One)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(KingBuilder.New().WithPosition(new Position(EColumn.E, ELine.One)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(BishopBuilder.New().WithPosition(new Position(EColumn.F, ELine.One)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(KnightBuilder.New().WithPosition(new Position(EColumn.G, ELine.One)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(RookBuilder.New().WithPosition(new Position(EColumn.H, ELine.One)).WithColor(EColor.White).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.A, ELine.Seven)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.B, ELine.Seven)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.C, ELine.Seven)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.D, ELine.Seven)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.E, ELine.Seven)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.F, ELine.Seven)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.G, ELine.Seven)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(PawnBuilder.New().WithGameplay(this).WithPosition(new Position(EColumn.H, ELine.Seven)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(RookBuilder.New().WithPosition(new Position(EColumn.A, ELine.Eight)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(KnightBuilder.New().WithPosition(new Position(EColumn.B, ELine.Eight)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(BishopBuilder.New().WithPosition(new Position(EColumn.C, ELine.Eight)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(QueenBuilder.New().WithPosition(new Position(EColumn.D, ELine.Eight)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(KingBuilder.New().WithPosition(new Position(EColumn.E, ELine.Eight)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(BishopBuilder.New().WithPosition(new Position(EColumn.F, ELine.Eight)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(KnightBuilder.New().WithPosition(new Position(EColumn.G, ELine.Eight)).WithColor(EColor.Black).WithBoard(Board).Build());
     Board.AddPiece(RookBuilder.New().WithPosition(new Position(EColumn.H, ELine.Eight)).WithColor(EColor.Black).WithBoard(Board).Build());
 }
Beispiel #2
0
        void initpieces()
        {
            PieceBuilder pc;

            pc          = new PawnBuilder();
            whitePieces = new List <Piece>();
            blackPieces = new List <Piece>();
            for (int x = 0; x < 8; x++)
            {
                whitePieces.Add(pc.BuildPiece(true, x, 6, new PawnMovement()));
                b.board[x, 6].av = 1;
                blackPieces.Add(pc.BuildPiece(false, x, 1, new PawnMovement()));
                b.board[x, 1].av = 2;
            }
            pc = new RookBuilder();
            whitePieces.Add(pc.BuildPiece(true, 0, 7, new RookMovement()));
            b.board[0, 7].av = 1;
            whitePieces.Add(pc.BuildPiece(true, 7, 7, new RookMovement()));
            b.board[7, 7].av = 1;
            blackPieces.Add(pc.BuildPiece(false, 0, 0, new RookMovement()));
            b.board[0, 0].av = 2;
            blackPieces.Add(pc.BuildPiece(false, 7, 0, new DefaultMovement()));
            b.board[7, 0].av = 2;
            pc = new KnightBuilder();
            whitePieces.Add(pc.BuildPiece(true, 1, 7, new KnightMovement()));
            b.board[1, 7].av = 1;
            whitePieces.Add(pc.BuildPiece(true, 6, 7, new KnightMovement()));
            b.board[6, 7].av = 1;
            blackPieces.Add(pc.BuildPiece(false, 1, 0, new KnightMovement()));
            b.board[1, 0].av = 2;
            blackPieces.Add(pc.BuildPiece(false, 6, 0, new KnightMovement()));
            b.board[6, 0].av = 2;
            pc = new BishopBuilder();
            whitePieces.Add(pc.BuildPiece(true, 2, 7, new BishopMovement()));
            b.board[2, 7].av = 1;
            whitePieces.Add(pc.BuildPiece(true, 5, 7, new BishopMovement()));
            b.board[5, 7].av = 1;
            blackPieces.Add(pc.BuildPiece(false, 2, 0, new BishopMovement()));
            b.board[2, 0].av = 2;
            blackPieces.Add(pc.BuildPiece(false, 5, 0, new BishopMovement()));
            b.board[5, 0].av = 2;
            pc = new QueenBuilder();
            whitePieces.Add(pc.BuildPiece(true, 3, 7, new QueenMovement()));
            b.board[3, 7].av = 1;
            blackPieces.Add(pc.BuildPiece(false, 3, 0, new QueenMovement()));
            b.board[3, 0].av = 2;
            pc = new KingBuilder();
            whitePieces.Add(pc.BuildPiece(true, 4, 7, new KingMovement()));
            b.board[4, 7].av = 1;
            blackPieces.Add(pc.BuildPiece(false, 4, 0, new KingMovement()));
            b.board[4, 0].av = 2;
            foreach (var w in whitePieces)
            {
                b.board[w.x, w.y].c = w.c;
            }
            foreach (var w in blackPieces)
            {
                b.board[w.x, w.y].c = w.c;
            }
        }
Beispiel #3
0
        public void ShouldRegisterQuantityMove()
        {
            var pawn = PawnBuilder.New().Build();

            pawn.Move(new Position(EColumn.B, ELine.Three));
            pawn.Move(new Position(EColumn.B, ELine.Four));
            Assert.True(pawn.QuantityMove == 2);
        }
Beispiel #4
0
        public void ShouldNotKillNonExistentPiece(Position positionPieceToAddOnBoard, EColor colorPieceToAddOnBoard)
        {
            var board             = BoardBuilder.New().Build();
            var pieceToAddOnBoard = PawnBuilder.New().WithPosition(positionPieceToAddOnBoard).WithColor(colorPieceToAddOnBoard).Build();

            board.KillPiece(pieceToAddOnBoard);
            var pieceIsNotDead = !board.DeadPieces.Any(p => p.Equals(pieceToAddOnBoard));

            Assert.True(pieceIsNotDead);
        }
Beispiel #5
0
        public void ShouldMove(Position actualPosition, Position newPosition, EColor color)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pawn = PawnBuilder.New().WithColor(color).WithPosition(actualPosition).WithBoard(board).Build();

            board.AddPiece(pawn);
            var moved = pawn.Move(newPosition);

            Assert.True(moved && pawn.Position.Equals(newPosition) && pawn.QuantityMove == 1);
        }
Beispiel #6
0
        public void ShouldAddPiece()
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pawn = PawnBuilder.New().Build();

            board.AddPiece(pawn);
            var existisPieceOnBoard = board.Pieces.Any(p => p.Equals(pawn));

            Assert.True(existisPieceOnBoard);
        }
Beispiel #7
0
        public void ShouldMoveWithPiecesOnBoard(Position positionPieceToAddBoard, EColor colorPieceToAddBoard, Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pieceToAddBoard = PawnBuilder.New().WithPosition(positionPieceToAddBoard).WithColor(colorPieceToAddBoard).WithBoard(board).Build();

            board.AddPiece(pieceToAddBoard);
            var rook  = RookBuilder.New().WithColor(EColor.White).WithPosition(new Position(EColumn.D, ELine.Four)).WithBoard(board).Build();
            var moved = rook.Move(newPosition);

            Assert.True(moved && rook.Position.Equals(newPosition) && rook.QuantityMove > 0);
        }
Beispiel #8
0
        public void ShouldNotMoveWithPiecesOnBoard(Position positionPieceToAddBoard, EColor colorPieceToAddBoard, Position actualPosition, EColor color, Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pieceToAddBoard = PawnBuilder.New().WithPosition(positionPieceToAddBoard).WithColor(colorPieceToAddBoard).WithBoard(board).Build();

            board.AddPiece(pieceToAddBoard);
            var pawn     = PawnBuilder.New().WithColor(color).WithPosition(actualPosition).WithBoard(board).Build();
            var notMoved = !pawn.Move(newPosition);

            Assert.True(notMoved && pawn.Position.Equals(actualPosition) && pawn.QuantityMove == 0);
        }
Beispiel #9
0
        public void ShouldUndoMove()
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var firstPosition = new Position(EColumn.B, ELine.Two);
            var pawn          = PawnBuilder.New().WithPosition(firstPosition).WithBoard(board).Build();

            board.AddPiece(pawn);
            var moved = pawn.Move(new Position(EColumn.B, ELine.Four));

            pawn.UndoMove();
            Assert.True(moved && pawn.Position.Equals(firstPosition) && pawn.QuantityMove == 0);
        }
Beispiel #10
0
        public void ShouldKillPiece()
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pawn = PawnBuilder.New().WithBoard(board).Build();

            board.AddPiece(pawn);
            board.KillPiece(pawn);
            var removedPiecefromBoard = !board.Pieces.Any(p => p.Equals(pawn));
            var pieceIsDead           = board.DeadPieces.Any(p => p.Equals(pawn));

            Assert.True(removedPiecefromBoard && pieceIsDead);
        }
Beispiel #11
0
        public void ShouldNotAddSamePiece(Position positionPieceToAddOnBoard, EColor colorPieceToAddOnBoard)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var pieceToAddOnBoard = PawnBuilder.New().WithPosition(positionPieceToAddOnBoard).WithColor(colorPieceToAddOnBoard).Build();

            board.AddPiece(pieceToAddOnBoard);
            var newPiece = PawnBuilder.New().WithPosition(positionPieceToAddOnBoard).WithColor(colorPieceToAddOnBoard).Build();;

            board.AddPiece(newPiece);
            var notExistisPieceOnBoard = !board.Pieces.Any(p => p.Equals(newPiece));

            Assert.True(notExistisPieceOnBoard);
        }
Beispiel #12
0
        public void ShouldExchangePieceForAnother()
        {
            var board    = BoardBuilder.New().Build();
            var pawn     = PawnBuilder.New().WithColor(EColor.White).WithBoard(board).Build();
            var position = pawn.Position;

            board.AddPiece(pawn);
            var knight = KnightBuilder.New().WithColor(EColor.White).WithBoard(board).Build();

            board.AddPiece(knight);
            board.KillPiece(knight);
            board.ExchangePieceForAnother(pawn, knight);
            var newKnight = board.GetPieceFromPosition(position);

            Assert.True(newKnight != null && newKnight.Position.Equals(position) && !board.Pieces.Any(p => p == knight) && !board.DeadPieces.Any(p => p == knight) && board.DeadPieces.Any(p => p == pawn));
        }
Beispiel #13
0
        public void ShouldClearBoard()
        {
            var board = BoardBuilder.New().Build();
            var pawn1 = PawnBuilder.New().WithPosition(new Position(EColumn.A, ELine.Two)).WithBoard(board).Build();

            board.AddPiece(pawn1);
            var pawn2 = PawnBuilder.New().WithPosition(new Position(EColumn.B, ELine.Two)).WithBoard(board).Build();

            board.AddPiece(pawn2);
            var pawn3 = PawnBuilder.New().WithPosition(new Position(EColumn.C, ELine.Two)).WithBoard(board).Build();

            board.AddPiece(pawn3);
            board.KillPiece(pawn3);

            board.ClearBoard();

            var boardWasClean = board.Pieces.Count == 0 && board.DeadPieces.Count == 0;

            Assert.True(boardWasClean);
        }