public GameAnalysisModel Analyze(GameStateModel stateModel) { var state = _game.CreateState(stateModel.Word); _game.State = state; var analysis = _player.Analyse(_game); var analysisModel = new GameAnalysisModel(analysis); return(analysisModel); }
private void TakeNoteOfWinner(GameAnalysisModel analysis) { if (analysis.HasWinner) { Game.Winner = analysis.Winner == 0 ? Game.Player.Name : "Computer"; var message = Regex.Replace(analysis.Explanation, "player 1", (match => "Computer"), RegexOptions.IgnoreCase); message = Regex.Replace(message, "player 0", (match => Game.Player.Name), RegexOptions.IgnoreCase); Game.WinnerExplanation = string.Format("{0}. So, {1} player has won", message, Game.Winner); } }
private void ApplyComputerMove(GameStateModel newState, GameAnalysisModel analysis) { if (Game.Word.Length < newState.Word.Length) { var lastLetter = newState.Word.Substring(newState.Word.Length - 1, 1); Game.Moves.Add(lastLetter); Game.Word = newState.Word; Game.ComputerLastMove = newState.Word; var message = Regex.Replace(analysis.Help, "player 1", (match => "I"), RegexOptions.IgnoreCase); message = Regex.Replace(message, "player 0", (match => "you"), RegexOptions.IgnoreCase); Game.ComputerLastMoveExplanation = string.Format("{0}. So, I have played the letter '{1}'", message, lastLetter); } }
public void Reset(GameAnalysisModel analysis = null) { Player.NumberOfGames = Player.NumberOfGames + 1; if (analysis != null) { Player.NumberOfVictories = analysis.Winner == 0 ? Player.NumberOfVictories + 1 : Player.NumberOfVictories; } NewMove = ""; Moves = new List <string>(); Word = ""; ComputerLastMove = ""; ComputerLastMoveExplanation = ""; Winner = ""; WinnerExplanation = ""; }