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), }; }
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); }