public ActionResult OpponentGuess(GameViewModel viewData)
        {
            var gameData = Service.GetActiveGame();
            var data     = new GuessData()
            {
                GameID = gameData.GameID,
                Rounds = gameData.OpponentTurns.Count()
            };

            gameData.Guess = Service.HandleOpponentGuess(data);
            if (gameData.Guess == Constants.CHEATER)
            {
                return(RedirectToAction("End", new { gameId = gameData.GameID, status = Constants.CHEATER }));
            }
            if (gameData.Guess == gameData.UserNumber)
            {
                return(RedirectToAction("End", new { gameId = gameData.GameID, status = Constants.DEFEAT }));
            }

            gameData.PostFormToAction    = "UserResponse";
            gameData.OpponentNumberSlots = viewData.OpponentNumberSlots;
            gameData.Bulls          = 0;
            gameData.Cows           = 0;
            TempData[TEMP_DATA_KEY] = gameData;
            return(RedirectToAction("Play"));
        }
Beispiel #2
0
        public bool HandleUserGuess(GuessData data, out int bulls, out int cows)
        {
            var game = Unit.Games.Get(data.GameID, "Turns");

            if (game == null)
            {
                throw new Exception("Game not found!");
            }
            var opponentNumber = game.OpponentNumber;

            Opponent.RespondToUser(data.Guess, opponentNumber, out bulls, out cows);

            Unit.Turns.Add(new Turn()
            {
                Action = Constants.USER_GUESS,
                Guess  = data.Guess,
                GameID = data.GameID,
                Bulls  = bulls,
                Cows   = cows,
                Index  = game.Turns.Count(),
            });
            game.CurrentAction       = Constants.OPPONENT_GUESS;
            game.OpponentNumberSlots = data.OpponentNumberSlots.ToString();
            Unit.Complete();
            if (game.OpponentNumber == data.Guess)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public ActionResult Guess(GameViewModel viewData)
        {
            var gameData = Service.GetActiveGame();
            var data     = new GuessData()
            {
                GameID = gameData.GameID,
                Rounds = gameData.UserTurns.Count(),
                Guess  = viewData.Guess,
                OpponentNumberSlots = viewData.OpponentNumberSlots
            };
            var victory = Service.HandleUserGuess(data, out int bulls, out int cows);

            if (victory)
            {
                return(RedirectToAction("End", new { gameId = gameData.GameID, status = Constants.VICTORY }));
            }

            gameData.Guess = viewData.Guess;
            gameData.Bulls = bulls;
            gameData.Cows  = cows;
            gameData.OpponentNumberSlots = viewData.OpponentNumberSlots;
            gameData.PostFormToAction    = "OpponentGuess";
            TempData[TEMP_DATA_KEY]      = gameData;
            return(RedirectToAction("Play"));
        }
Beispiel #4
0
    // Use this for initialization
    void Start()
    {
        slotMachine = new SlotMachine();
        slotMachine.Init();

        data          = new GuessData();
        data.boxCount = slotMachine.BoxCount;

        agent = new GuessAgent();
        agent.Init();

        m_rateCounter = new float[slotMachine.BoxCount];

        InitUI();

        m_lastTime = Time.realtimeSinceStartup;
    }
Beispiel #5
0
    public override IActionMonitor CreateActionMonitor(IAgentData data)
    {
        GuessActionMonitor newActionMonitor = new GuessActionMonitor();

        GuessData guessData = data as GuessData;
        int       boxCount  = guessData.boxCount;

        for (int i = 1; i <= boxCount; i++)
        {
            GuessAction newAction = new GuessAction(i);
            newActionMonitor.actionDict.Add(i, newAction);
        }

        newActionMonitor.AfterAddActions();

        return(newActionMonitor);
    }
Beispiel #6
0
        public string HandleOpponentGuess(GuessData data)
        {
            var opponentTurns = Unit.Turns.GetOpponentTurns(data.GameID).ToList();
            //Unit.Games.Get(data.GameID).CurrentAction = Constants.USER_RESPONSE;
            var game  = Unit.Games.Get(data.GameID);
            var guess = Opponent.ChooseNextGuess(opponentTurns);

            if (guess == game.UserNumber)
            {
                Unit.Turns.Add(new Turn()
                {
                    Action = Constants.OPPONENT_GUESS,
                    Index  = game.Turns.Count(),
                    GameID = data.GameID,
                    Guess  = guess,
                    Bulls  = 4,
                    Cows   = 0
                });
                Unit.Complete();
            }
            ;

            return(guess);
        }
Beispiel #7
0
    override public void Excute(IAgentData data)
    {
        GuessData guessData = data as GuessData;

        guessData.guessResult = ID;
    }
Beispiel #8
0
	// Use this for initialization
	public override int GetKeyByData(IAgentData data)
	{
		GuessData guessData = data as GuessData;
		return guessData.lastResult;
	}