私はテキサスホールデムのJavaハンド履歴クラスを考え出しています。テキサスホールデムの手履歴クラスをJavaで設計する
必要条件はすべてのアクションが保存され、標準的な継続賭けのような共通の「ライン」に合うように(各プレイハンドを表す)各HandHistoryオブジェクトをトラバースする効率的な方法があることです。レフトポジションのプリフロップで、おそらくポストフロップのポジションにあることがチェックされ、75%のアイポットベットが行われます)。
各行の定義が最高でも曖昧なときを無視します。最初に刺すように、私はそうのようにそれを組織のことを考えていました:
public class HandHistory {
private Integer handnumber;
//in case we saw things at showdown, put them here
private HashMap<Player,String> playerHands;
private String flopCards;
private String turnCard;
private String riverCard;
private HashMap<BetRound,LinkedHashMap<Integer,ArrayList<PlayerAction>>> actions;
}
ので、各betroundのために、私たちは、そのキーそのbetroundのために行動する最初の位置からのオフセットされている整数ですリンクハッシュマップを保存するので、プリフロップUTGは0です。
アクションは、すでに位置順に生成されています。リンクされたハッシュマップを使用して、後でうまく反復して座っている位置をスキップできるようにします。
各アーリーリストには、そのベットラウンドにそのポジションが持つアクションが含まれます。ほとんどの場合、この配列には1つの要素がありますが、リンプとコールのような場合には2つの要素があります。
誰でもこれに使用するためのより良いデータ構造を見ることができますか?