Set puzzle: Difference between revisions

→‎{{header|Java}}: generate exactly the number of sets, not at least
(→‎{{header|D}}: break off findSets search when target is overshot)
(→‎{{header|Java}}: generate exactly the number of sets, not at least)
Line 203:
 
=={{header|Java}}==
<lang java>packageimport setpuzzlejava.util.Arrays;
 
import java.util.Arrays;
import java.util.Collections;
import org.apache.commons.lang3.ArrayUtils;
Line 290 ⟶ 288:
Card[] cards;
Card[][] sets = new Card[target][3];
outer:int cnt;
while (true)do {
 
int cnt = 0;
Collections.shuffle(Arrays.asList(deck));
cards = ArrayUtils.subarray(deck, 0, numCards);
int cnt = 0;
 
for (int i = 0; i < cards.length - 2; i++) {
Line 301 ⟶ 300:
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 ⟶ 307:
}
}
} while (cnt != target);
Arrays.sort(cards);
 
Anonymous user