{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export type Card = { rank: number; suit: '♠'|'♥'|'♦'|'♣' };\nexport type Deck = Card[];\n\nexport function makeDeck(): Deck {\n  const suits = ['♠','♥','♦','♣'] as const;\n  const deck: Deck = [];\n  for (const s of suits) for (let r = 1; r <= 13; r++) deck.push({ rank: r, suit: s });\n  return deck;\n}\n\nexport function shuffle<T>(arr: T[], rnd = Math.random): T[] {\n  const a = arr.slice();\n  for (let i = a.length - 1; i > 0; i--) {\n    const j = Math.floor(rnd() * (i + 1));\n    [a[i], a[j]] = [a[j], a[i]];\n  }\n  return a;\n}\n\n// Example: start a Klondike deal (very simplified)\nexport function dealKlondike(deck: Deck) {\n  const piles: Deck[] = Array.from({ length: 7 }, () => []);\n  let idx = 0;\n  for (let col = 0; col < 7; col++) {\n    for (let row = 0; row <= col; row++) piles[col].push(deck[idx++]);\n  }\n  const stock = deck.slice(idx);\n  return { piles, stock };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,SAAS,WAAiB;AAC/B,QAAM,QAAQ,CAAC,UAAI,UAAI,UAAI,QAAG;AAC9B,QAAM,OAAa,CAAC;AACpB,aAAW,KAAK,MAAO,UAAS,IAAI,GAAG,KAAK,IAAI,IAAK,MAAK,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;AACnF,SAAO;AACT;AAEO,SAAS,QAAW,KAAU,MAAM,KAAK,QAAa;AAC3D,QAAM,IAAI,IAAI,MAAM;AACpB,WAAS,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,KAAK;AACrC,UAAM,IAAI,KAAK,MAAM,IAAI,KAAK,IAAI,EAAE;AACpC,KAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAAA,EAC5B;AACA,SAAO;AACT;AAGO,SAAS,aAAa,MAAY;AACvC,QAAM,QAAgB,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;AACxD,MAAI,MAAM;AACV,WAAS,MAAM,GAAG,MAAM,GAAG,OAAO;AAChC,aAAS,MAAM,GAAG,OAAO,KAAK,MAAO,OAAM,GAAG,EAAE,KAAK,KAAK,KAAK,CAAC;AAAA,EAClE;AACA,QAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,SAAO,EAAE,OAAO,MAAM;AACxB;","names":[]}