Beispiel #1
0
 public Decision MakeDecision(FlopDecisionContext context)
 {
     if (!_initialized)
     {
         Init(context);
     }
     if (context.IsHeadsUp)
     {
         Logger.Instance.Log($"Heads up: villain: {context.HeadsUpVillain.Position}-{context.HeadsUpVillainName} hero: {context.Hero.Position}-{context.HeroName}");
         if (context.IsRaised)
         {
             Logger.Instance.Log($"Pot is raised, employing callingStrategy to make decision...");
             return(_callingStrategy.MakeDecision(context));
         }
         else
         {
             Logger.Instance.Log($"Pot is not raised, employing bettingStrategy to make decision...");
             return(_bettingStrategy.MakeDecision(context));
         }
     }
     else
     {
         Logger.Instance.Log($"Multiway: villains: {string.Join(",", context.AliveVillains.Select(v => $"{v.Position}-{v.Name}"))} hero: {context.Hero.Position}-{context.HeroName}");
         if (context.IsRaised)
         {
             Logger.Instance.Log($"Pot is raised, employing callingStrategy to make decision...");
             return(_multiwayCallingStrategy.MakeDecision(context));
         }
         else
         {
             Logger.Instance.Log($"Pot is not raised, employing bettingStrategy to make decision...");
             return(_multiwayBettingStrategy.MakeDecision(context));
         }
     }
 }
Beispiel #2
0
 private void Init(FlopDecisionContext context)
 {
     _bettingStrategy         = new FlopHeadsUpBettingStrategy(context.FlopBoard, context.HeroHoles);
     _callingStrategy         = new FlopHeadsUpCallingStrategy();
     _multiwayBettingStrategy = new FlopMultiwayBettingStrategy(context.FlopBoard, context.HeroHoles);
     _multiwayCallingStrategy = new FlopMultiwayCallingStrategy(context.FlopBoard, context.HeroHoles);
     _initialized             = true;
 }