コード例 #1
0
        public object Put()
        {
            var chessBoard = new ChessBoard();
            (new TraditionalBoardStager()).Stage(chessBoard);

            var chessGame = new ChessGame(
                chessBoard,
                PlayerTypeEnum.White,
                new Dictionary<PlayerTypeEnum, List<ChessPiece>>());

            var id = Guid.NewGuid();
            m_chessGameRepo.Put(id, chessGame);

            return new
            {
                _id = id,
                _turn = ((char)chessGame.PlayerTurn),
                _taken = new
                {
                    w = chessGame.GetTakenPiecesByPlayer(PlayerTypeEnum.White).Select(x => (char)x.Type),
                    b = chessGame.GetTakenPiecesByPlayer(PlayerTypeEnum.Black).Select(x => (char)x.Type),
                },
                _state = chessBoard.GetBoardAsListOfString(),
                _history = chessGame.GetMoves(),
                _moves = new PotentialMoveService().GetPotentialMoves(chessGame, chessGame.PlayerTurn),
            };
        }
コード例 #2
0
ファイル: AllChessTests.cs プロジェクト: nannanbatman/chess
        public void Overtake()
        {
            ChessBoard b = new ChessBoard();
            b.Set("g4", new ChessPiece() { Player = PlayerTypeEnum.White, Type = PieceTypeEnum.Pawn });
            b.Set("h5", new ChessPiece() { Player = PlayerTypeEnum.Black, Type = PieceTypeEnum.Pawn });

            TraditionalRulesOfChess rules = new TraditionalRulesOfChess();

            ChessGame chessGame = new ChessGame(
                b,
                PlayerTypeEnum.White,
                null);

            var move = chessGame.PlayerMove(PlayerTypeEnum.White, "g4h5");

            Assert.IsTrue(move.Success, move.Error);
            Assert.IsNotNull(move.Taken);
            Assert.AreEqual(chessGame.GetTakenPiecesByPlayer(PlayerTypeEnum.White).Length, 1);
            Assert.AreEqual(chessGame.GetTakenPiecesByPlayer(PlayerTypeEnum.White)[0].Player, PlayerTypeEnum.Black);
        }