Я пишу HandConverter покерной руки. Это мой первый проект, и я стараюсь делать его с самого начала.
У меня уже есть большинство частей, таких как списки игроков, их позиции, размеры стэков, карты для разных досок, какая игра и так далее, но мне сложно представить ставки, особенно различные рейзы, ставки и множественные ставки. звонки от того же игрока.
Я нашел несколько случаев, когда мое наивное решение, основанное на кейсе, не работает, и оно действительно сложно, и мне это не нравится. Поскольку в настоящее время он работает в безлимитном холдеме, я думаю, что у меня будет больше обходных путей, если я захочу реализовать такие игры, как стад, разз и т. Д., Хотя структура ставок, вероятно, такая же.
На данный момент я использую это представление, и я хотел бы особенно улучшить классы Round
и Action
. Есть ли у вас какие-нибудь предложения для меня?
public class HandHistory
{
public GameInfo GameInfo;
public TableInfo TableInfo;
public List<Player> Players;
public List<Round> Rounds;
public string rawtext;
public bool withHero;
}
public Round
{
public List<Action> Action;
public string Name;
public decimal Potsize;
public ulong Cards; //usually would have used a custom class,
//but I need them in a ulong mask for some library I use
}
public class Action
{
public Player Player;
public string Type;
public decimal Amount;
}
P.S. Я также использую список для хранения различных раундов, есть ли лучший способ, например, наследовать класс раунда для флопа, терна и ривера?