Jump to content

Set puzzle: Difference between revisions

→‎{{header|D}}: removed some of the constness because the code wouldn't compile otherwise
(D entry: removed assumeUnique, added immutable and const, used foreach, shorter lines, and other small changes)
(→‎{{header|D}}: removed some of the constness because the code wouldn't compile otherwise)
Line 72:
std.exception;
 
const class SetDealer {
protected {
enum Color : ubyte {green, purple, red}
Line 86:
}
 
immutable Card[81] deck;
}
 
Line 107:
immutable(Card)[] deal(in uint numCards) const {
enforce(numCards < deck.length, "number of cards too large");
return assumeUnique(deck[].randomSample(numCards).array());
}
 
Line 158:
const cards = dealer.deal();
 
writefln("DEALT\nDEALT %d CARDS:\n", cards.length);
foreach (c; cards)
writeln(cast()c);
Line 164:
immutable sets = dealer.findSets(cards);
immutable len = sets.length;
writefln("\nFOUND %d %s:\n", len, len == 1 ? "SET" : "SETS");
foreach (set; sets) {
foreach (c; set)
Line 173:
{{out|Sample output}}
<pre>DEALT 9 CARDS:
 
Card(green, two, diamond, open)
Card(green, three, oval, striped)
Line 184 ⟶ 185:
 
FOUND 4 SETS:
 
Card(green, two, diamond, open)
Card(purple, two, squiggle, open)
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.