コード例 #1
0
        public GameState ProcessMove(Position start, Position end)
        {
            var movePiece = new MoveServiceRequest
            {
                End         = end,
                Start       = start,
                Pieces      = _gameState.Pieces,
                BlackPieces = _gameState.BlackPieces,
                WhitePieces = _gameState.WhitePieces
            };

            var moveServiceResult = _moveService.MovePiece(movePiece, _gameState.MoveNumber);

            _gameState.MoveNumber += 1;
            _gameState.IsCheck     = IsCheck(_gameState);
            _gameState.Pieces      = moveServiceResult.Pieces;
            _gameState.BlackPieces = moveServiceResult.BlackPieces;
            _gameState.WhitePieces = moveServiceResult.WhitePieces;
            _gameState.ValidMoves  = GenerateValidMoves();
            return(_gameState);
        }