0

プレーヤーは常に4枚のカードを持っており、それらは配列に格納されます。プレーヤーは最も不要なカードを選択し、不要なカードのインデックス(0から3)を返す必要があります。ルールは次のとおりです。

  1. 単一のランクがプレイヤーの手札に最も多く現れる場合、異なるランクのカードがランダムに選択されます。
  2. それ以外の場合、カードはプレイヤーの手札全体からランダムに選択されます。

私はそれに2時間費やしました、問題は私が各カードランクの発生と配列内のそれらの位置を知る必要があるということです、それで私は使用しました

Map<Rank, ArrayList<Integer>>

意思決定の部分は非常に厄介ですが、これを行うためのより良い方法はありますか?

例:

私の手札がA、10、10、Aの場合、ランダムに1つを選択します。手が3、3、3、Aの場合、Aを選択します。手が2、2、4、5の場合、ランダムに4を選択します。または、5を選択します。手がA、2、3、4の場合、ランダムに選択します。 1。

4

1 に答える 1

1

配列リストのマップですべてを追跡しようとする代わりに、モデル クラスを定義する必要があります。

public class Card {
    private String rank;
    private String value:
}

.

public class Hand {
    private List<Card> cards;
}

.

public class Player {
    private Hand hand;
}

.

public class CardGame {
    private List<Player> players;
}

これらのモデル クラスに残りのゲーム情報を入力できます。

于 2013-03-17T23:54:23.430 に答える