示例#1
0
        private static SimPlayerTurnContext GetCurrentContext(PlayerTurnContext context)
        {
            SimPlayerTurnContext currentContext = null;

            var stateManager = new SimStateManager();

            if (context.State.GetType().Name == "StartRoundState")
            {
                var state = new SimStartRoundState(stateManager);

                currentContext = new SimPlayerTurnContext(state, context.TrumpCard, context.CardsLeftInDeck, context.FirstPlayerRoundPoints, context.SecondPlayerRoundPoints);
            }
            else if (context.State.GetType().Name == "TwoCardsLeftRoundState")
            {
                var state = new SimTwoCardsLeftRoundState(stateManager);

                currentContext = new SimPlayerTurnContext(state, context.TrumpCard, context.CardsLeftInDeck, context.FirstPlayerRoundPoints, context.SecondPlayerRoundPoints);
            }
            else if (context.State.GetType().Name == "MoreThanTwoCardsLeftRoundState")
            {
                var state = new SimMoreThanTwoCardsLeftRoundState(stateManager);

                currentContext = new SimPlayerTurnContext(state, context.TrumpCard, context.CardsLeftInDeck, context.FirstPlayerRoundPoints, context.SecondPlayerRoundPoints);
            }
            else if (context.State.GetType().Name == "FinalRoundState")
            {
                var state = new SimFinalRoundState(stateManager);

                currentContext = new SimPlayerTurnContext(state, context.TrumpCard, context.CardsLeftInDeck, context.FirstPlayerRoundPoints, context.SecondPlayerRoundPoints);
            }

            currentContext.FirstPlayedCard     = context.FirstPlayedCard;
            currentContext.SecondPlayedCard    = context.SecondPlayedCard;
            currentContext.FirstPlayerAnnounce = context.FirstPlayerAnnounce;

            return(currentContext);
        }
示例#2
0
        private static SimPlayerTurnContext GetCurrentContext(PlayerTurnContext context)
        {
            SimPlayerTurnContext currentContext = null;

            var stateManager = new SimStateManager();

            if (context.State.GetType().Name == "StartRoundState")
            {
                var state = new SimStartRoundState(stateManager);

                currentContext = new SimPlayerTurnContext(state, context.TrumpCard, context.CardsLeftInDeck, context.FirstPlayerRoundPoints, context.SecondPlayerRoundPoints);
            }
            else if (context.State.GetType().Name == "TwoCardsLeftRoundState")
            {
                var state = new SimTwoCardsLeftRoundState(stateManager);

                currentContext = new SimPlayerTurnContext(state, context.TrumpCard, context.CardsLeftInDeck, context.FirstPlayerRoundPoints, context.SecondPlayerRoundPoints);
            }
            else if (context.State.GetType().Name == "MoreThanTwoCardsLeftRoundState")
            {
                var state = new SimMoreThanTwoCardsLeftRoundState(stateManager);

                currentContext = new SimPlayerTurnContext(state, context.TrumpCard, context.CardsLeftInDeck, context.FirstPlayerRoundPoints, context.SecondPlayerRoundPoints);
            }
            else if (context.State.GetType().Name == "FinalRoundState")
            {
                var state = new SimFinalRoundState(stateManager);

                currentContext = new SimPlayerTurnContext(state, context.TrumpCard, context.CardsLeftInDeck, context.FirstPlayerRoundPoints, context.SecondPlayerRoundPoints);
            }

            currentContext.FirstPlayedCard = context.FirstPlayedCard;
            currentContext.SecondPlayedCard = context.SecondPlayedCard;
            currentContext.FirstPlayerAnnounce = context.FirstPlayerAnnounce;

            return currentContext;
        }