public override Decision GetDecision(PreviousDecisionResult previousResult) { using (HttpClient client = _httpClientFactory.CreateClient()) { var result = client.PostAsJsonAsync(_apiRootUrl, previousResult).Result; //string rawBotChoice = client.GetStringAsync(_apiRootUrl).Result; string rawBotChoice = result.Content.ReadAsStringAsync().Result; BotChoice botChoice = JsonConvert.DeserializeObject <BotChoice>(rawBotChoice); return(botChoice?.Decision ?? throw new Exception("Didn't get BotChoice back from web api call.")); } }
public override Decision GetDecision(PreviousDecisionResult previousResult) { var decisions = new List <Decision> { Decision.Dynamite, Decision.Paper, Decision.Rock, Decision.Scissors, Decision.WaterBalloon }; var r = new Random(); var nextChoice = r.Next(0, 5); return(decisions[nextChoice]); }
public override Decision GetDecision(PreviousDecisionResult previousResult) { Decision decision = GetDecisionThatBeats(previousResult.OpponentPrevious); if (decision == Decision.Dynamite && WeAreOutOfDynamite(previousResult.MatchId)) { decision = GetRandomFromSet(AllBasics); } if (decision == Decision.Dynamite) { LogDynamiteUsage(previousResult.MatchId); } return(decision); }
public override Decision GetDecision(PreviousDecisionResult previousResult) { if (_connection == null) { InitializeConnection(); } _connection.InvokeAsync("RequestMove", previousResult); while (_decision == null) { } var decisionToReturn = _decision; _decision = null; return(decisionToReturn.Value); }
public async Task RequestMove(PreviousDecisionResult previousDecision) { BaseBot bot; if (previousDecision.MatchId != _matchId) { _matchId = previousDecision.MatchId; _round = 1; } if (_round < 100 && previousDecision.OpponentPrevious != Decision.WaterBalloon) { bot = new DynamiteOnlyBot(); } else { bot = new CleverBot(); } _round++; Decision decision = bot.GetDecision(previousDecision); await Clients.All.SendAsync("MakeDecision", decision); }
public override Decision GetDecision(PreviousDecisionResult previousResult) { return(GetDecisionThatBeats(previousResult.OpponentPrevious)); }
public override Decision GetDecision(PreviousDecisionResult previousResult) => Decision.Rock;
public abstract Decision GetDecision(PreviousDecisionResult previousResult);
public override Decision GetDecision(PreviousDecisionResult previousResult) => Decision.WaterBalloon;
public async Task RequestMove(PreviousDecisionResult previousDecision) { var cleverBot = new CleverBot(); Decision decision = cleverBot.GetDecision(previousDecision); await Clients.All.SendAsync("MakeDecision", decision); }
public override Decision GetDecision(PreviousDecisionResult previousResult) { return(_decision); }
public override Decision GetDecision(PreviousDecisionResult previousResult) => Decision.Dynamite;