namespace Poker.Strategies; internal abstract class Strategy { public static Strategy None = new None(); public static Strategy Fold = new Fold(); public static Strategy Check = new Check(); public static Strategy Raise = new Raise(); public static Strategy Bet(float amount) => new Bet((int)amount); public static Strategy Bet(int amount) => new Bet(amount); public static Strategy Bluff(int amount, int? keepMask = null) => new Bluff(amount, keepMask); public abstract int Value { get; } public virtual int? KeepMask { get; } }