0

私はハンドストレングスエバリュエーターを実装しています。これは、片手とフロップを配った後、残りの47枚のカードから可能なすべてのペアを評価することです。

エバリュエーターを実装しましたが、比較できるすべての可能な組み合わせがありません。2枚のカードで構成されるHandのクラスを作成し、各組み合わせをセットのHashSetに格納したいと思います。どのデータ構造を選択する必要がありますか?HashSetが最適な場合、Handの各インスタンスを一意にするにはどうすればよいですか?

4

2 に答える 2

2

HashSet合理的なように思えますが、順序付けは後で重要になる可能性があるため、TreeSet. equalsand compareTo/Comparableメソッドを実装するとHandSet一意性が強制されます。

于 2012-09-10T15:24:30.667 に答える
0

カードに番号を付けるか、リストに入れます。

あなたができるリストを使用する場合

Set<Card> inHand = ...
for(int i=0;i<list.size();i++) {
  Card card1 = list.get(i);
  if (inHand.contains(card1)) continue;

  for(int j=i+1;j<list.size();j++) {
      Card card2 = list.get(j);
      if (inHand.contains(card2)) continue;

      // process card1 and card2
于 2012-09-10T15:22:32.297 に答える