Anonymous user
Set puzzle: Difference between revisions
→{{header|D}}: break off findSets search when target is overshot
m (omissions and categories) |
(→{{header|D}}: break off findSets search when target is overshot) |
||
Line 139:
}
immutable(Card)[3][] findSets(in Card[] cards
pure nothrow {
auto len = cards.length;
if (len >= 3) {
Line 146 ⟶ 147:
for (int j = i + 1; j < len - 1; j++)
for (int k = j + 1; k < len; k++)
if (validSet(cards[i], cards[j], cards[k])) {
sets ~= [cards[i], cards[j], cards[k]];
if (target != 0 && sets.length > target)
return null;
}
}
return assumeUnique(sets);
Line 163 ⟶ 167:
do {
cards = super.deal(numCards);
} while (findSets(cards, numSets).length != numSets);
return assumeUnique(cards);
|