Set puzzle: Difference between revisions

(→‎{{header|Java}}: generate exactly the number of sets, not at least)
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);
}
 
@Override
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;
 
@Override outer:
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);
 
Anonymous user