コード例 #1
0
ファイル: Versus.xaml.cs プロジェクト: Kaprawiec/Szachy
        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;
            }
        }
コード例 #2
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());
 }
コード例 #3
0
ファイル: KnightTest.cs プロジェクト: Ranzoni/ChessGame
        public void ShouldMove(Position newPosition)
        {
            var board = BoardBuilder.New().Build();

            board.ClearBoard();
            var knight = KnightBuilder.New().WithColor(EColor.Black).WithBoard(board).Build();

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

            Assert.True(moved && knight.Position.Equals(newPosition) && knight.QuantityMove > 0);
        }
コード例 #4
0
ファイル: KnightTest.cs プロジェクト: Ranzoni/ChessGame
        public void ShouldMoveWithPiecesOnBoard(Position positionPieceToAddBoard, EColor colorPieceToAddBoard, Position newPosition)
        {
            var board = BoardBuilder.New().Build();

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

            board.AddPiece(pieceToAddBoard);
            var knight = KnightBuilder.New().WithColor(EColor.Black).WithBoard(board).Build();
            var moved  = knight.Move(newPosition);

            Assert.True(moved && knight.Position.Equals(newPosition) && knight.QuantityMove > 0);
        }
コード例 #5
0
ファイル: BoardTest.cs プロジェクト: Ranzoni/ChessGame
        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));
        }