type2 = (hand) => {
const groups = d3.rollup(
hand,
(r) => r.length,
(c) => c
);
if (groups.size > 1 && groups.has("J")) {
const j = groups.get("J");
groups.delete("J");
const [k, v] = d3.sort(groups.entries(), ([k, v]) => v).reverse()[0];
groups.set(k, v + j);
}
const sizes = d3.sort(groups.values());
switch (groups.size) {
case 1:
return 6;
case 2:
return sizes[0] === 1
? 5
: 4;
case 3:
return sizes[2] === 3
? 3
: 2;
case 4:
return 1;
default:
return 0;
}
}