Anonymous user
Set puzzle: Difference between revisions
→{{header|Java}}: fix bug
(→{{header|Java}}: generate exactly the number of sets, not at least) |
(→{{header|Java}}: fix bug) |
||
Line 210:
enum Color {
GREEN(0), PURPLE(1), RED(2);
Line 220 ⟶ 219:
enum Number {
ONE(0), TWO(1), THREE(2);
Line 230 ⟶ 228:
enum Symbol {
OVAL(0), DIAMOND(1), SQUIGGLE(2);
Line 240 ⟶ 237:
enum Fill {
OPEN(0), STRIPED(1), SOLID(2);
Line 250 ⟶ 246:
private static class Card implements Comparable<Card> {
Color c;
Number n;
Line 256 ⟶ 251:
Fill f;
@Override▼
public String toString() {
return String.format("[Card: %s, %s, %s, %s]", c, n, s, f);
}
public int compareTo(Card o) {
return (c.val - o.c.val) * 10 + (n.val - o.n.val);
}
}
private static Card[] deck;
Line 290 ⟶ 284:
int cnt;
do {
Collections.shuffle(Arrays.asList(deck));
cards = ArrayUtils.subarray(deck, 0, numCards);
cnt = 0;
for (int i = 0; i < cards.length - 2; i++) {
for (int j = i + 1; j < cards.length - 1; j++) {
Line 300 ⟶ 294:
if (validSet(cards[i], cards[j], cards[k])) {
sets[cnt] = new Card[]{cards[i], cards[j], cards[k]};
if (++cnt >= target) {
break outer;
}
}
Line 308 ⟶ 302:
}
} while (cnt != target);
Arrays.sort(cards);
|