私はトーナメントのためのゲームプランを設定するアプリケーションをしようとしています。どのようにして分散でArrayListをランダム化できますか?
public List<Match> creerMatchsTousContreTous(List<Equipe> lEquipe) {
List<Match> lMatch = new ArrayList<>();
for (int i = 0; i < lEquipe.size(); i++) {
for (int j = i + 1; j < lEquipe.size(); j++) {
Match match = new Match();
match.setEquA(lEquipe.get(i));
match.setEquB(lEquipe.get(j));
lMatch.add(match);
}
}
return lMatch;
}
この方法は、チームのリストをreceid:
は私が方法を持っています。それぞれが互いに遊ぶべきである。これは、プレイのリスト(Match)を返します。
私は今演劇をランダムにしたいです。最初のプレイをプレイするチームAが次のプレイをプレイしないことが必要です。そしてもっともっと。
私が使用します。演劇のリスト
Collections.shuffle(lMatch);
しかし、それramdom、テマ、2つの連続したプレーを果たしている可能性があります。
どうすれば実現できますか? おかげ 敬具
EDIT:
例:
方法は、ゲームのリストを返す:
TEAM 1:TEAM 2
TEAM 2:TEAM 3
TEAM 1:TEAM 3
TEAM 4:TEAM 3
TEAM 2:TEAM 4
TEAM 4:この例ではTEAM 3
creerMatchsTousContreTous()リターン6つの値を持つリストしかしここでは、たとえば、第1ゲームでは、チーム2がプレーしています。第2ゲームでもプレーしていますが、そうであってはいけません。
質問に例を追加しました。 lMatchはゲームのリストです。 – anubis
基本的には、私が上記で提供した実装はまだ有効です。チームクラスにブール変数を作成する必要があります。この変数は、チームがゲームでプレイする資格があるかどうかを決定します。あなたは既にlMatchリストを作成する方法を知っているので、残っているのは、2つのランダムに選択されたチームのいずれかが前の試合でプレーしたかどうかを確認することだけです。 –