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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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;
Exemple #8
0
 public abstract Decision GetDecision(PreviousDecisionResult previousResult);
Exemple #9
0
 public override Decision GetDecision(PreviousDecisionResult previousResult) => Decision.WaterBalloon;
Exemple #10
0
 public async Task RequestMove(PreviousDecisionResult previousDecision)
 {
     var      cleverBot = new CleverBot();
     Decision decision  = cleverBot.GetDecision(previousDecision);
     await Clients.All.SendAsync("MakeDecision", decision);
 }
Exemple #11
0
 public override Decision GetDecision(PreviousDecisionResult previousResult)
 {
     return(_decision);
 }
Exemple #12
0
 public override Decision GetDecision(PreviousDecisionResult previousResult) => Decision.Dynamite;