Something went wrong. Try again.
A daily game
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859export function arrayOfSize(size: number) { return new Array<null>(size).fill(null);}
export function groupIntoRows<T>(items: T[], columns: number) { return items.reduce((acc, cur, i) => { if (i % columns === 0) { return [...acc, [cur]]; }
acc[acc.length - 1] = [...acc[acc.length - 1]!, cur]; return acc; }, [] as T[][]);}
export function groupIntoCols<T>(items: T[], columns: number) { const rows = groupIntoRows(items, columns); return arrayOfSize(rows[0]!.length).map((_, x) => rows.map((row) => row[x] as T), );}
// Given a row or column, return an array containing the// number of contiguous values grouped by variant.// E.g. given the block [0, 1, 1, 0, 2, 1], return [2, 1] for variant 1.export function groupByValue<T extends Array<any>>(block: T, value: T[number]) { const [first, ...rest] = block;
const grouped = rest .reduce<T[number][][]>( (acc, cur) => { if (acc.at(acc.length - 1)![0] === cur) { acc[acc.length - 1] = [...acc[acc.length - 1]!, cur]; return acc; }
return [...acc, [cur]]; }, [[first]], ) .reduce<number[]>((acc, cur) => { if (cur[0] === value) { return [...acc, cur.length]; }
return acc; }, []);
if (grouped.length === 0) { return [0]; }
return grouped;}
export function generateSeedForDay(day: Date) { return `${day.getFullYear()}${day.getMonth().toString().padStart(2, "0")}${day.getDate().toString().padStart(2, "0")}`;}