こんいちは。 今、カードゲームを作っているのですが、 リストに格納された先頭の8件に3件以上、重複したものがあったら、 再シャッフルし続けると言うロジックを組んでいるのですが、 ログを見ると、3件以上なのに終了したり、最初の8件に3件以上無いのに シャッフルしてます。 このロジックに間違いないと思っているんですが、 どこか間違っていますでしょうか? boolean flg = true; do { Collections.shuffle(list, new Random()); flg = true; for (int i = 0; i < 8; i++) { int cnt = 0; for (int j = 0; j < 8; j++) { if (list.get(i).id.equals(list.get(j).id)) cnt++; } if (cnt > 2) { flg = false; break; } } } while (flg);
↧