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")); }
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")); }
// 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; }
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); }
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); }
override public void Excute(IAgentData data) { GuessData guessData = data as GuessData; guessData.guessResult = ID; }
// Use this for initialization public override int GetKeyByData(IAgentData data) { GuessData guessData = data as GuessData; return guessData.lastResult; }