J'écris un HandConverter d'une main de poker. C'est mon premier projet et j'essaye de le faire dès le début. J'ai déjà obtenu le plus de parties, comme les listes de joueurs, leur position, les tailles de tapis, les cartes pour différentes tables, quel jeu est joué et ainsi de suite, mais je me bats avec la représentation des paris, en particulier les différentes hausses , les paris et les appels multiples du même joueur.Représentation d'objet des tours d'enchères au poker
J'ai trouvé quelques cas où ma solution basée sur des cas naïfs ne fonctionne pas, et c'est vraiment compliqué et je ne l'aime pas. Comme cela fonctionne actuellement pour NL Hold'em, je pense que je vais avoir plus de solutions de rechange si je veux mettre en œuvre des jeux comme Stud, Razz et ainsi de suite, mais la structure de pari est probablement la même.
Pour l'instant j'utilise cette représentation et je voudrais améliorer en particulier les classes Round
et Action
. Avez-vous des suggestions pour moi?
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. J'utilise également une liste pour stocker les différents tours, est-il préférable d'hériter de la classe ronde pour Flop, Turn et River, par exemple?
Vous ne savez pas exactement ce que les cartes dans Round sont supposées représenter. – FrustratedWithFormsDesigner
il représente un masque de carte 64 bits.Ceci est utilisé par l'évaluateur (calcul de la force de la main et ainsi de suite) J'utilise – Sven