From 1e6d153cd099788bfc5346b68890c1949e0b4ab5 Mon Sep 17 00:00:00 2001 From: funman300 Date: Wed, 13 May 2026 09:42:56 -0700 Subject: [PATCH] feat(wasm): playable browser game at /play MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add `SolitaireGame` WASM binding to `solitaire_wasm` exposing draw(), move_cards(), undo(), auto_complete_step(), and state() — all backed by the real solitaire_core rules engine. Add /play route to solitaire_server serving a full vanilla-JS interactive Klondike game (game.html / game.css / game.js). Features: drag-and-drop card moves (mouse + touch via PointerEvents), click stock to draw, double-click card to auto-move to foundation, undo, draw-1/3 toggle, new game, auto-complete animation, win overlay, seed display. Rebuild solitaire_wasm.js + solitaire_wasm_bg.wasm. Co-Authored-By: Claude Sonnet 4.6 --- solitaire_server/src/lib.rs | 4 + solitaire_server/web/game.css | 239 ++++++++ solitaire_server/web/game.html | 43 ++ solitaire_server/web/game.js | 569 ++++++++++++++++++ solitaire_server/web/pkg/solitaire_wasm.js | 100 +++ .../web/pkg/solitaire_wasm_bg.wasm | Bin 222781 -> 194966 bytes solitaire_wasm/src/lib.rs | 204 ++++++- 7 files changed, 1158 insertions(+), 1 deletion(-) create mode 100644 solitaire_server/web/game.css create mode 100644 solitaire_server/web/game.html create mode 100644 solitaire_server/web/game.js diff --git a/solitaire_server/src/lib.rs b/solitaire_server/src/lib.rs index 22a50a8..1eac740 100644 --- a/solitaire_server/src/lib.rs +++ b/solitaire_server/src/lib.rs @@ -205,6 +205,10 @@ fn build_router_inner(state: AppState, rate_limit: bool) -> Router { "/replays/{id}", get(|| async { Html(include_str!("../web/index.html")) }), ) + .route( + "/play", + get(|| async { Html(include_str!("../web/game.html")) }), + ) .nest_service("/web", ServeDir::new("solitaire_server/web")); Router::new() diff --git a/solitaire_server/web/game.css b/solitaire_server/web/game.css new file mode 100644 index 0000000..964065b --- /dev/null +++ b/solitaire_server/web/game.css @@ -0,0 +1,239 @@ +/* Solitaire Quest — interactive game page. + Palette and card styles mirror replay.css; adds drag, selection, + HUD, and win-overlay layers. */ + +:root { + --bg: #0f0a1f; + --felt: #0f4c30; + --panel: #1a0f2e; + --panel-hi: #2d1b69; + --text: #f5f0ff; + --text-muted: #b5a8d5; + --accent: #ffd23f; + --red: #cc3344; + --black: #1a0f2e; + --card-bg: #ffffff; + --card-border: #ccc; + --card-w: 80px; + --card-h: 112px; + --gap: 12px; + --fan: 28px; +} + +* { box-sizing: border-box; margin: 0; padding: 0; } + +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); + min-height: 100vh; + display: flex; + flex-direction: column; + user-select: none; +} + +/* ── Header / HUD ────────────────────────────────────────────────────── */ + +header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 10px 20px; + border-bottom: 1px solid rgba(255,255,255,0.07); + gap: 12px; + flex-wrap: wrap; +} + +.hud-left { display: flex; align-items: center; gap: 12px; } +.hud-center { display: flex; gap: 20px; font-size: 14px; font-weight: 600; } +.hud-right { display: flex; align-items: center; gap: 10px; } + +.logo { font-size: 16px; font-weight: 700; } +.muted { color: var(--text-muted); font-size: 12px; } + +button { + background: var(--panel-hi); + color: var(--text); + border: 1px solid rgba(255,255,255,0.12); + border-radius: 6px; + padding: 6px 14px; + cursor: pointer; + font-size: 13px; + font-family: inherit; + transition: background 120ms; +} +button:hover { background: var(--accent); color: var(--black); } +button:disabled { opacity: 0.4; cursor: default; } + +.toggle-label { + display: flex; + align-items: center; + gap: 6px; + font-size: 13px; + cursor: pointer; + color: var(--text-muted); +} +.toggle-label:hover { color: var(--text); } + +/* ── Board ───────────────────────────────────────────────────────────── */ + +main { + flex: 1; + display: flex; + justify-content: center; + align-items: flex-start; + padding: 20px; +} + +#board { + position: relative; + background: var(--felt); + border-radius: 12px; + padding: 20px; + /* 7 columns wide */ + width: calc(7 * var(--card-w) + 6 * var(--gap) + 40px); + /* top row + generous fan budget for a 13-card column */ + height: calc(var(--card-h) + 28px + var(--card-h) + 12 * var(--fan) + 40px); + cursor: default; +} + +/* Empty-pile slot markers */ +.slot { + position: absolute; + width: var(--card-w); + height: var(--card-h); + border: 2px dashed rgba(255,255,255,0.15); + border-radius: 8px; +} + +.slot.drop-active { + border-color: var(--accent); + background: rgba(255, 210, 63, 0.08); +} + +/* ── Cards ───────────────────────────────────────────────────────────── */ + +.card { + position: absolute; + top: 0; left: 0; + width: var(--card-w); + height: var(--card-h); + background: var(--card-bg); + border: 1px solid var(--card-border); + border-radius: 6px; + box-shadow: 0 2px 5px rgba(0,0,0,0.35); + padding: 4px 6px; + font-weight: 600; + line-height: 1; + cursor: grab; + transition: transform 260ms cubic-bezier(0.22, 1, 0.36, 1), + opacity 200ms ease, + box-shadow 120ms ease; + will-change: transform; +} + +.card:active { cursor: grabbing; } + +.card.face-down { + background: + repeating-linear-gradient( + 45deg, + #482f97 0, #482f97 6px, + #2d1b69 6px, #2d1b69 12px + ); + color: transparent; + border-color: #4a3a8a; + cursor: default; +} + +.card .corner { + position: absolute; + font-size: 14px; + line-height: 1.1; + text-align: center; +} +.card .corner.top { top: 4px; left: 6px; } +.card .corner.bottom { bottom: 4px; right: 6px; transform: rotate(180deg); } + +.card.red { color: var(--red); } +.card.black { color: var(--black); } + +.card .center { + position: absolute; + top: 50%; left: 50%; + transform: translate(-50%, -50%); + font-size: 28px; +} + +/* Stock pile: pointer cursor since it's a click target, not draggable */ +.card.stock-card { cursor: pointer; } + +/* Selected / being-dragged state */ +.card.selected { + box-shadow: 0 0 0 2px var(--accent), 0 4px 12px rgba(0,0,0,0.5); + z-index: 200; + transition: none; /* snap instantly while dragging */ +} + +/* Drop-target highlight on cards (top of a tableau column) */ +.card.drop-target { + box-shadow: 0 0 0 2px var(--accent), 0 4px 12px rgba(0,0,0,0.5); +} + +/* Recycle indicator on empty stock */ +.recycle-label { + position: absolute; + top: 50%; left: 50%; + transform: translate(-50%, -50%); + font-size: 26px; + color: rgba(255,255,255,0.3); + pointer-events: none; +} + +/* ── Win overlay ─────────────────────────────────────────────────────── */ + +#win-overlay { + position: fixed; + inset: 0; + background: rgba(10, 5, 20, 0.75); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; +} + +#win-overlay.hidden { display: none; } + +.win-card { + background: var(--panel); + border: 1px solid rgba(255,255,255,0.12); + border-radius: 16px; + padding: 40px 48px; + text-align: center; + display: flex; + flex-direction: column; + gap: 16px; + box-shadow: 0 20px 60px rgba(0,0,0,0.6); +} + +.win-title { + font-size: 36px; + font-weight: 700; + color: var(--accent); +} + +.win-score { + font-size: 24px; + font-weight: 600; +} + +.win-detail { + font-size: 14px; + color: var(--text-muted); +} + +#btn-win-new { + margin-top: 8px; + padding: 12px 32px; + font-size: 16px; +} diff --git a/solitaire_server/web/game.html b/solitaire_server/web/game.html new file mode 100644 index 0000000..1914594 --- /dev/null +++ b/solitaire_server/web/game.html @@ -0,0 +1,43 @@ + + + + + + Solitaire Quest — Play + + + +
+
+ + +
+
+ Score: 0 + Moves: 0 +
+
+ + + +
+
+ +
+
+
+ + + + + + diff --git a/solitaire_server/web/game.js b/solitaire_server/web/game.js new file mode 100644 index 0000000..b82f9c7 --- /dev/null +++ b/solitaire_server/web/game.js @@ -0,0 +1,569 @@ +// Solitaire Quest — interactive browser game. +// +// Architecture: +// - `SolitaireGame` (Rust/WASM via solitaire_core) owns all rule logic. +// - This file owns the DOM renderer, drag-and-drop input, and the game loop. +// - Cards are persistent DOM elements keyed by `card.id`; positions are +// updated via `transform: translate(...)` so the browser can animate +// flights on the compositor thread. +// +// Pile name convention (mirrors solitaire_wasm::SolitaireGame::move_cards): +// "stock" | "waste" | "foundation-0".."foundation-3" | "tableau-0".."tableau-6" + +import init, { SolitaireGame } from "/web/pkg/solitaire_wasm.js"; + +// ── Layout constants (must match game.css --card-w / --card-h / --gap) ────── +const CARD_W = 80; +const CARD_H = 112; +const GAP = 12; +const PAD = 20; // board padding +const FAN = 28; // vertical offset per fanned tableau card +const WASTE_FAN = 18; // horizontal offset for draw-3 waste fan + +// Top-row Y origin (relative to board interior = after padding). +const TOP_Y = 0; +const BOTTOM_Y = CARD_H + 28; // tableau row + +const colX = (c) => c * (CARD_W + GAP); + +// Absolute position of each pile's origin (top-left of its slot), +// relative to the board's padded interior (0, 0). +const PILE_ORIGIN = { + stock: { x: colX(0), y: TOP_Y }, + waste: { x: colX(1), y: TOP_Y }, + "foundation-0": { x: colX(3), y: TOP_Y }, + "foundation-1": { x: colX(4), y: TOP_Y }, + "foundation-2": { x: colX(5), y: TOP_Y }, + "foundation-3": { x: colX(6), y: TOP_Y }, + "tableau-0": { x: colX(0), y: BOTTOM_Y }, + "tableau-1": { x: colX(1), y: BOTTOM_Y }, + "tableau-2": { x: colX(2), y: BOTTOM_Y }, + "tableau-3": { x: colX(3), y: BOTTOM_Y }, + "tableau-4": { x: colX(4), y: BOTTOM_Y }, + "tableau-5": { x: colX(5), y: BOTTOM_Y }, + "tableau-6": { x: colX(6), y: BOTTOM_Y }, +}; + +const SUIT_GLYPH = { clubs: "♣", diamonds: "♦", hearts: "♥", spades: "♠" }; +const RANK_LABELS = ["","A","2","3","4","5","6","7","8","9","10","J","Q","K"]; +const RED_SUITS = new Set(["diamonds", "hearts"]); + +// ── State ──────────────────────────────────────────────────────────────────── +let game = null; +let snap = null; // last rendered GameSnapshot +let drawThree = false; + +// Persistent card → DOM element map (keyed by card.id). +const cardEls = new Map(); + +// Drag state +let drag = null; +// drag = { +// fromPile: string, +// fromIndex: number, // index of bottom card of the dragged run in its pile +// cardIds: number[], // ids of cards being dragged (bottom → top) +// startX: number, startY: number, // pointer start (board-relative) +// offsetX: number, offsetY: number, // cursor offset within the grabbed card +// } + +// Auto-complete timer handle +let acTimer = null; + +// ── DOM refs ───────────────────────────────────────────────────────────────── +const board = document.getElementById("board"); +const hudScore = document.getElementById("hud-score"); +const hudMoves = document.getElementById("hud-moves"); +const hudSeed = document.getElementById("hud-seed"); +const btnUndo = document.getElementById("btn-undo"); +const btnNew = document.getElementById("btn-new"); +const chkDraw3 = document.getElementById("chk-draw3"); +const winOverlay = document.getElementById("win-overlay"); +const winScore = document.getElementById("win-score"); +const winMoves = document.getElementById("win-moves"); +const btnWinNew = document.getElementById("btn-win-new"); + +// ── Bootstrap ──────────────────────────────────────────────────────────────── +async function bootstrap() { + await init(); + + // Seed from URL param ?seed=N, otherwise random. + const params = new URLSearchParams(window.location.search); + const urlSeed = params.has("seed") ? Number(params.get("seed")) : randomSeed(); + drawThree = params.has("draw3"); + chkDraw3.checked = drawThree; + + buildSlots(); + startGame(urlSeed); + attachHandlers(); +} + +function randomSeed() { + // Math.random gives a float in [0,1); multiply to get a large integer. + return Math.floor(Math.random() * 9007199254740991); +} + +function startGame(seed) { + if (acTimer) { clearInterval(acTimer); acTimer = null; } + game = new SolitaireGame(seed, drawThree); + snap = game.state(); + hudSeed.textContent = `seed ${Math.round(game.seed())}`; + winOverlay.classList.add("hidden"); + cardEls.clear(); + board.querySelectorAll(".card").forEach(el => el.remove()); + render(snap); +} + +// ── Slot placeholders ──────────────────────────────────────────────────────── +function buildSlots() { + for (const [pile, origin] of Object.entries(PILE_ORIGIN)) { + const el = document.createElement("div"); + el.className = "slot"; + el.dataset.pile = pile; + el.style.transform = `translate(${origin.x}px, ${origin.y}px)`; + board.appendChild(el); + } +} + +// ── Card position math ──────────────────────────────────────────────────────── +function cardPos(pileName, indexInPile, pileLength, pileCards) { + const origin = PILE_ORIGIN[pileName]; + let x = origin.x; + let y = origin.y; + + if (pileName === "waste" && drawThree && pileLength >= 2) { + // Show top-3 of waste fanned horizontally. + const fanStart = Math.max(0, pileLength - 3); + const fanPos = indexInPile - fanStart; + if (fanPos >= 0) { + x += fanPos * WASTE_FAN; + } else { + // Cards below the fan window are stacked at origin. + } + } else if (pileName.startsWith("tableau-")) { + y += indexInPile * FAN; + } + // Stock, foundations: stack (no offset). + return { x, y }; +} + +// Z-index: higher index in pile = drawn on top. +function cardZ(pileName, indexInPile, total) { + if (pileName === "stock") return 10 + indexInPile; + if (pileName === "waste") return 10 + indexInPile; + if (pileName.startsWith("found")) return 10 + indexInPile; + return 10 + indexInPile; +} + +// ── Renderer ───────────────────────────────────────────────────────────────── +function render(s) { + snap = s; + + // Update HUD + hudScore.textContent = `Score: ${s.score}`; + hudMoves.textContent = `Moves: ${s.move_count}`; + btnUndo.disabled = s.move_count === 0; + + // Collect all cards visible in this snapshot, keyed by id → {pile, idx}. + const visible = new Map(); + const addPile = (pileName, cards) => { + cards.forEach((c, i) => visible.set(c.id, { pile: pileName, idx: i, card: c, total: cards.length })); + }; + addPile("stock", s.stock); + addPile("waste", s.waste); + s.foundations.forEach((f, i) => addPile(`foundation-${i}`, f)); + s.tableaus.forEach((t, i) => addPile(`tableau-${i}`, t)); + + // Create or update card elements. + for (const [id, info] of visible) { + let el = cardEls.get(id); + if (!el) { + el = createCardEl(info.card); + cardEls.set(id, el); + board.appendChild(el); + } + + updateCardEl(el, info.card, info.pile, info.idx, info.total, s); + } + + // Remove cards no longer in the snapshot (shouldn't happen in solitaire + // but guards against stale state after undo). + for (const [id, el] of cardEls) { + if (!visible.has(id)) { + el.remove(); + cardEls.delete(id); + } + } + + // Update slot drop-active highlights (cleared on every render). + board.querySelectorAll(".slot.drop-active").forEach(el => el.classList.remove("drop-active")); + board.querySelectorAll(".card.drop-target").forEach(el => el.classList.remove("drop-target")); + + // Show recycle indicator on empty stock. + let recycleEl = board.querySelector(".recycle-label"); + if (s.stock.length === 0 && s.waste.length > 0) { + if (!recycleEl) { + recycleEl = document.createElement("div"); + recycleEl.className = "recycle-label"; + recycleEl.textContent = "↺"; + board.appendChild(recycleEl); + } + const o = PILE_ORIGIN.stock; + recycleEl.style.left = `${o.x + CARD_W / 2}px`; + recycleEl.style.top = `${o.y + CARD_H / 2}px`; + } else if (recycleEl) { + recycleEl.remove(); + } + + // Trigger auto-complete if applicable. + if (s.is_auto_completable && !s.is_won && !acTimer) { + acTimer = setInterval(doAutoCompleteStep, 400); + } + if (s.is_won) { + if (acTimer) { clearInterval(acTimer); acTimer = null; } + showWin(s); + } +} + +function createCardEl(card) { + const el = document.createElement("div"); + el.dataset.cardId = card.id; + return el; +} + +function updateCardEl(el, card, pileName, idx, total, s) { + const pos = cardPos(pileName, idx, total, null); + const z = cardZ(pileName, idx, total); + + el.style.transform = `translate(${pos.x}px, ${pos.y}px)`; + el.style.zIndex = z; + + const isTop = idx === total - 1; + + if (!card.face_up) { + el.className = "card face-down"; + if (pileName === "stock") el.classList.add("stock-card"); + el.innerHTML = ""; + } else { + const isRed = RED_SUITS.has(card.suit); + el.className = `card ${isRed ? "red" : "black"}`; + if (pileName === "stock") el.classList.add("stock-card"); + + const rankLabel = RANK_LABELS[card.rank]; + const suit = SUIT_GLYPH[card.suit]; + el.innerHTML = ` +
${rankLabel}
${suit}
+
${suit}
+
${rankLabel}
${suit}
`; + } +} + +// ── Win overlay ─────────────────────────────────────────────────────────────── +function showWin(s) { + winScore.textContent = `Score: ${s.score}`; + winMoves.textContent = `${s.move_count} moves`; + winOverlay.classList.remove("hidden"); +} + +// ── Auto-complete ───────────────────────────────────────────────────────────── +function doAutoCompleteStep() { + if (!game || !snap || !snap.is_auto_completable) { + clearInterval(acTimer); + acTimer = null; + return; + } + const result = game.auto_complete_step(); + if (result && result.ok) { + render(result.snapshot); + } else { + clearInterval(acTimer); + acTimer = null; + } +} + +// ── Input handling ──────────────────────────────────────────────────────────── +function attachHandlers() { + // Buttons + btnUndo.addEventListener("click", () => { + const r = game.undo(); + if (r.ok) render(r.snapshot); + }); + btnNew.addEventListener("click", () => startGame(randomSeed())); + btnWinNew.addEventListener("click", () => startGame(randomSeed())); + chkDraw3.addEventListener("change", () => { + drawThree = chkDraw3.checked; + startGame(randomSeed()); + }); + + // Keyboard shortcuts + document.addEventListener("keydown", (e) => { + if (e.key === "z" || e.key === "Z") { + const r = game.undo(); + if (r.ok) render(r.snapshot); + } + if (e.key === "n" || e.key === "N") { + startGame(randomSeed()); + } + }); + + // Board pointer events (handles both mouse and touch via PointerEvents API) + board.addEventListener("pointerdown", onPointerDown); + board.addEventListener("pointermove", onPointerMove); + board.addEventListener("pointerup", onPointerUp); + board.addEventListener("pointercancel", onPointerCancel); + board.addEventListener("click", onBoardClick); + board.addEventListener("dblclick", onBoardDblClick); +} + +// ── Coordinate helpers ──────────────────────────────────────────────────────── +function boardRelative(clientX, clientY) { + const rect = board.getBoundingClientRect(); + // Subtract board padding to get interior coordinates. + return { + x: clientX - rect.left - PAD, + y: clientY - rect.top - PAD, + }; +} + +function hitTestCard(bx, by) { + // Walk all visible piles, find the topmost card at (bx, by). + // Returns { pileName, cardIndex, cardId } or null. + const pileOrder = [ + "waste", + "foundation-0","foundation-1","foundation-2","foundation-3", + "tableau-0","tableau-1","tableau-2","tableau-3","tableau-4","tableau-5","tableau-6", + "stock", + ]; + + let best = null; + let bestZ = -1; + + for (const pileName of pileOrder) { + const cards = getPileCards(pileName); + if (!cards) continue; + + for (let i = 0; i < cards.length; i++) { + const pos = cardPos(pileName, i, cards.length, cards); + if (bx >= pos.x && bx <= pos.x + CARD_W && + by >= pos.y && by <= pos.y + CARD_H) { + const z = cardZ(pileName, i, cards.length); + if (z > bestZ) { + bestZ = z; + best = { pileName, cardIndex: i, cardId: cards[i].id, card: cards[i] }; + } + } + } + } + return best; +} + +function getPileCards(pileName) { + if (!snap) return null; + if (pileName === "stock") return snap.stock; + if (pileName === "waste") return snap.waste; + if (pileName.startsWith("foundation-")) { + const slot = parseInt(pileName.split("-")[1]); + return snap.foundations[slot]; + } + if (pileName.startsWith("tableau-")) { + const col = parseInt(pileName.split("-")[1]); + return snap.tableaus[col]; + } + return null; +} + +function hitTestSlot(bx, by) { + // Returns the pile name whose slot rect contains (bx, by), favouring + // tableau column slots over top-row slots when both overlap. + for (const [pile, origin] of Object.entries(PILE_ORIGIN)) { + if (bx >= origin.x && bx <= origin.x + CARD_W && + by >= origin.y && by <= origin.y + CARD_H) { + return pile; + } + } + return null; +} + +// For a tableau pile, hit-test for drop: the drop zone extends to the last +// card's bottom edge (or the slot if empty). +function findDropTarget(bx, by) { + // Check tableau columns first (they have tall hit areas). + for (let c = 0; c < 7; c++) { + const pile = `tableau-${c}`; + const cards = snap.tableaus[c]; + const origin = PILE_ORIGIN[pile]; + // Top boundary: origin.y. Bottom boundary: last card bottom or empty slot. + const bottomY = cards.length > 0 + ? origin.y + (cards.length - 1) * FAN + CARD_H + : origin.y + CARD_H; + if (bx >= origin.x && bx <= origin.x + CARD_W && + by >= origin.y && by <= bottomY) { + return pile; + } + } + // Foundation slots (top row). + for (let s = 0; s < 4; s++) { + const pile = `foundation-${s}`; + const origin = PILE_ORIGIN[pile]; + if (bx >= origin.x && bx <= origin.x + CARD_W && + by >= origin.y && by <= origin.y + CARD_H) { + return pile; + } + } + return null; +} + +// ── Pointer event handlers ──────────────────────────────────────────────────── +function onPointerDown(e) { + if (e.button !== 0 && e.pointerType === "mouse") return; + if (drag) return; // ignore second finger + + const { x: bx, y: by } = boardRelative(e.clientX, e.clientY); + const hit = hitTestCard(bx, by); + if (!hit) return; + if (!hit.card.face_up) return; // can't drag face-down cards + + const cards = getPileCards(hit.pileName); + if (!cards) return; + + // For tableau, allow dragging a run from any face-up card. + // For waste/foundation, only the top card. + let fromIndex = hit.cardIndex; + if (!hit.pileName.startsWith("tableau-")) { + fromIndex = cards.length - 1; // only top card + if (hit.cardIndex !== fromIndex) return; + } + + const draggedCards = cards.slice(fromIndex); + if (draggedCards.some(c => !c.face_up)) return; // face-down in run — blocked + + const cardOriginPos = cardPos(hit.pileName, fromIndex, cards.length, cards); + + drag = { + fromPile: hit.pileName, + fromIndex, + cardIds: draggedCards.map(c => c.id), + startX: bx, + startY: by, + offsetX: bx - cardOriginPos.x, + offsetY: by - cardOriginPos.y, + }; + + // Lift the dragged cards visually. + drag.cardIds.forEach((id, i) => { + const el = cardEls.get(id); + if (el) { + el.classList.add("selected"); + el.style.zIndex = 500 + i; + } + }); + + board.setPointerCapture(e.pointerId); + e.preventDefault(); +} + +function onPointerMove(e) { + if (!drag) return; + const { x: bx, y: by } = boardRelative(e.clientX, e.clientY); + const dx = bx - drag.startX; + const dy = by - drag.startY; + + const cards = getPileCards(drag.fromPile); + drag.cardIds.forEach((id, i) => { + const el = cardEls.get(id); + if (!el) return; + const basePos = cardPos(drag.fromPile, drag.fromIndex + i, (cards ? cards.length : 1), null); + el.style.transform = `translate(${basePos.x + dx}px, ${basePos.y + dy}px)`; + }); + + // Highlight drop target. + board.querySelectorAll(".slot.drop-active").forEach(el => el.classList.remove("drop-active")); + board.querySelectorAll(".card.drop-target").forEach(el => el.classList.remove("drop-target")); + const targetPile = findDropTarget(bx, by); + if (targetPile) { + const slotEl = board.querySelector(`.slot[data-pile="${targetPile}"]`); + if (slotEl) slotEl.classList.add("drop-active"); + const targetCards = getPileCards(targetPile); + if (targetCards && targetCards.length > 0) { + const topCard = cardEls.get(targetCards[targetCards.length - 1].id); + if (topCard) topCard.classList.add("drop-target"); + } + } + + e.preventDefault(); +} + +function onPointerUp(e) { + if (!drag) return; + board.querySelectorAll(".slot.drop-active").forEach(el => el.classList.remove("drop-active")); + board.querySelectorAll(".card.drop-target").forEach(el => el.classList.remove("drop-target")); + + const { x: bx, y: by } = boardRelative(e.clientX, e.clientY); + const targetPile = findDropTarget(bx, by); + + let moved = false; + if (targetPile && targetPile !== drag.fromPile) { + const count = drag.cardIds.length; + const r = game.move_cards(drag.fromPile, targetPile, count); + if (r.ok) { + render(r.snapshot); + moved = true; + } + } + + if (!moved) { + // Snap cards back to their original positions. + drag.cardIds.forEach(id => { + const el = cardEls.get(id); + if (el) el.classList.remove("selected"); + }); + render(snap); // re-render restores transforms + } + + drag = null; +} + +function onPointerCancel() { + if (drag) { + drag.cardIds.forEach(id => { + const el = cardEls.get(id); + if (el) el.classList.remove("selected"); + }); + render(snap); + drag = null; + } +} + +// ── Click handlers ──────────────────────────────────────────────────────────── +function onBoardClick(e) { + if (drag) return; // swallowed by pointer-up + + const { x: bx, y: by } = boardRelative(e.clientX, e.clientY); + + // Stock click → draw. + const stockOrigin = PILE_ORIGIN.stock; + if (bx >= stockOrigin.x && bx <= stockOrigin.x + CARD_W && + by >= stockOrigin.y && by <= stockOrigin.y + CARD_H) { + const r = game.draw(); + if (r.ok) render(r.snapshot); + return; + } +} + +function onBoardDblClick(e) { + const { x: bx, y: by } = boardRelative(e.clientX, e.clientY); + const hit = hitTestCard(bx, by); + if (!hit || !hit.card.face_up) return; + + // Only try to move the top card of its pile. + const cards = getPileCards(hit.pileName); + if (!cards || hit.cardIndex !== cards.length - 1) return; + + // Try each foundation slot. + for (let s = 0; s < 4; s++) { + const r = game.move_cards(hit.pileName, `foundation-${s}`, 1); + if (r.ok) { render(r.snapshot); return; } + } +} + +// ── Start ───────────────────────────────────────────────────────────────────── +bootstrap().catch(console.error); diff --git a/solitaire_server/web/pkg/solitaire_wasm.js b/solitaire_server/web/pkg/solitaire_wasm.js index 7f477ce..cbf30e5 100644 --- a/solitaire_server/web/pkg/solitaire_wasm.js +++ b/solitaire_server/web/pkg/solitaire_wasm.js @@ -71,6 +71,103 @@ export class ReplayPlayer { } } if (Symbol.dispose) ReplayPlayer.prototype[Symbol.dispose] = ReplayPlayer.prototype.free; + +/** + * Interactive Klondike game backed by the real `solitaire_core` rules engine. + * + * Construct with `new(seed, draw_three)`, then call `draw()`, `move_cards()`, + * `undo()`, `auto_complete_step()` to advance the game. `state()` returns the + * full pile snapshot at any time without mutating state. + */ +export class SolitaireGame { + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + SolitaireGameFinalization.unregister(this); + return ptr; + } + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_solitairegame_free(ptr, 0); + } + /** + * Apply one auto-complete move (only valid when `is_auto_completable`). + * Returns the post-move snapshot or `null` when auto-complete is unavailable. + * @returns {any} + */ + auto_complete_step() { + const ret = wasm.solitairegame_auto_complete_step(this.__wbg_ptr); + return ret; + } + /** + * Draw from stock to waste (or recycle waste → stock when stock is empty). + * Returns `{ok, error?, snapshot?}`. + * @returns {any} + */ + draw() { + const ret = wasm.solitairegame_draw(this.__wbg_ptr); + return ret; + } + /** + * Move `count` cards from pile `from` to pile `to`. + * + * Pile names: `"stock"`, `"waste"`, `"foundation-0"` .. `"foundation-3"`, + * `"tableau-0"` .. `"tableau-6"`. + * + * Returns `{ok, error?, snapshot?}`. + * @param {string} from + * @param {string} to + * @param {number} count + * @returns {any} + */ + move_cards(from, to, count) { + const ptr0 = passStringToWasm0(from, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(to, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.solitairegame_move_cards(this.__wbg_ptr, ptr0, len0, ptr1, len1, count); + return ret; + } + /** + * Create a new DrawOne or DrawThree Classic game from the given seed. + * + * `seed` is a JS `number` (f64); values up to 2^53 are represented exactly. + * Pass `Date.now()` or a random integer from JS for variety. + * @param {number} seed + * @param {boolean} draw_three + */ + constructor(seed, draw_three) { + const ret = wasm.solitairegame_new(seed, draw_three); + this.__wbg_ptr = ret; + SolitaireGameFinalization.register(this, this.__wbg_ptr, this); + return this; + } + /** + * The seed used to deal this game. + * @returns {number} + */ + seed() { + const ret = wasm.solitairegame_seed(this.__wbg_ptr); + return ret; + } + /** + * Full pile snapshot as a JS object. + * @returns {any} + */ + state() { + const ret = wasm.solitairegame_state(this.__wbg_ptr); + return ret; + } + /** + * Undo the last move. Returns `{ok, error?, snapshot?}`. + * @returns {any} + */ + undo() { + const ret = wasm.solitairegame_undo(this.__wbg_ptr); + return ret; + } +} +if (Symbol.dispose) SolitaireGame.prototype[Symbol.dispose] = SolitaireGame.prototype.free; function __wbg_get_imports() { const import0 = { __proto__: null, @@ -151,6 +248,9 @@ function __wbg_get_imports() { const ReplayPlayerFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_replayplayer_free(ptr, 1)); +const SolitaireGameFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_solitairegame_free(ptr, 1)); let cachedDataViewMemory0 = null; function getDataViewMemory0() { diff --git a/solitaire_server/web/pkg/solitaire_wasm_bg.wasm b/solitaire_server/web/pkg/solitaire_wasm_bg.wasm index a03c60d3e76c5ffebf65d29da8850d341ff0a0fb..7ddcbff62f116286f601eaa3e3ba41943c7b8988 100644 GIT binary patch literal 194966 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 z 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 S{x!+ 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 MU`bFP{H^!@0!?_?SO5S3 literal 222781 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 vJi^9e>#693!ymF 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 Y3R}<6F+5uk6K-a+&`gY_7HGEr1IeNXr2qf` diff --git a/solitaire_wasm/src/lib.rs b/solitaire_wasm/src/lib.rs index 1c27d0c..0fb7ffd 100644 --- a/solitaire_wasm/src/lib.rs +++ b/solitaire_wasm/src/lib.rs @@ -1,4 +1,4 @@ -//! WebAssembly bindings for browser-side replay playback. +//! WebAssembly bindings for browser-side replay playback and interactive gameplay. //! //! The web replay player at `/replays/` fetches a [`Replay`] //! JSON via `GET /api/replays/:id`, hands it to [`ReplayPlayer::new`], @@ -222,6 +222,208 @@ impl ReplayPlayer { } } +// --------------------------------------------------------------------------- +// Interactive game surface +// --------------------------------------------------------------------------- + +/// Full snapshot of a live `SolitaireGame` for the JS renderer. +#[derive(Debug, Clone, Serialize)] +pub struct GameSnapshot { + pub score: i32, + pub move_count: u32, + pub is_won: bool, + pub is_auto_completable: bool, + pub undo_count: u32, + pub stock: Vec, + pub waste: Vec, + pub foundations: [Vec; 4], + pub tableaus: [Vec; 7], +} + +/// Result returned to JS from every mutating game action. +#[derive(Debug, Clone, Serialize)] +pub struct ActionResult { + pub ok: bool, + #[serde(skip_serializing_if = "Option::is_none")] + pub error: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub snapshot: Option, +} + +/// Interactive Klondike game backed by the real `solitaire_core` rules engine. +/// +/// Construct with `new(seed, draw_three)`, then call `draw()`, `move_cards()`, +/// `undo()`, `auto_complete_step()` to advance the game. `state()` returns the +/// full pile snapshot at any time without mutating state. +#[wasm_bindgen] +pub struct SolitaireGame { + game: GameState, +} + +impl SolitaireGame { + fn snap(&self) -> GameSnapshot { + let cards = |t: PileType| -> Vec { + self.game + .piles + .get(&t) + .map(|p| p.cards.iter().map(CardSnapshot::from).collect()) + .unwrap_or_default() + }; + GameSnapshot { + score: self.game.score, + move_count: self.game.move_count, + is_won: self.game.is_won, + is_auto_completable: self.game.is_auto_completable, + undo_count: self.game.undo_count, + stock: cards(PileType::Stock), + waste: cards(PileType::Waste), + foundations: [ + cards(PileType::Foundation(0)), + cards(PileType::Foundation(1)), + cards(PileType::Foundation(2)), + cards(PileType::Foundation(3)), + ], + tableaus: [ + cards(PileType::Tableau(0)), + cards(PileType::Tableau(1)), + cards(PileType::Tableau(2)), + cards(PileType::Tableau(3)), + cards(PileType::Tableau(4)), + cards(PileType::Tableau(5)), + cards(PileType::Tableau(6)), + ], + } + } + + fn pile_from_str(s: &str) -> Result { + match s { + "stock" => Ok(PileType::Stock), + "waste" => Ok(PileType::Waste), + _ if s.starts_with("foundation-") => { + let slot: u8 = s["foundation-".len()..] + .parse() + .map_err(|_| format!("bad pile: {s}"))?; + if slot >= 4 { + return Err(format!("foundation slot out of range: {slot}")); + } + Ok(PileType::Foundation(slot)) + } + _ if s.starts_with("tableau-") => { + let col: usize = s["tableau-".len()..] + .parse() + .map_err(|_| format!("bad pile: {s}"))?; + if col >= 7 { + return Err(format!("tableau col out of range: {col}")); + } + Ok(PileType::Tableau(col)) + } + _ => Err(format!("unknown pile: {s}")), + } + } + + fn ok_js(&self) -> JsValue { + serde_wasm_bindgen::to_value(&ActionResult { + ok: true, + error: None, + snapshot: Some(self.snap()), + }) + .unwrap_or(JsValue::NULL) + } + + fn err_js(msg: impl std::fmt::Display) -> JsValue { + serde_wasm_bindgen::to_value(&ActionResult { + ok: false, + error: Some(msg.to_string()), + snapshot: None, + }) + .unwrap_or(JsValue::NULL) + } +} + +#[wasm_bindgen] +impl SolitaireGame { + /// Create a new DrawOne or DrawThree Classic game from the given seed. + /// + /// `seed` is a JS `number` (f64); values up to 2^53 are represented exactly. + /// Pass `Date.now()` or a random integer from JS for variety. + #[wasm_bindgen(constructor)] + pub fn new(seed: f64, draw_three: bool) -> SolitaireGame { + #[cfg(feature = "console_error_panic_hook")] + console_error_panic_hook::set_once(); + let dm = if draw_three { + DrawMode::DrawThree + } else { + DrawMode::DrawOne + }; + SolitaireGame { + game: GameState::new_with_mode(seed as u64, dm, GameMode::Classic), + } + } + + /// Full pile snapshot as a JS object. + pub fn state(&self) -> JsValue { + serde_wasm_bindgen::to_value(&self.snap()).unwrap_or(JsValue::NULL) + } + + /// The seed used to deal this game. + pub fn seed(&self) -> f64 { + self.game.seed as f64 + } + + /// Draw from stock to waste (or recycle waste → stock when stock is empty). + /// Returns `{ok, error?, snapshot?}`. + pub fn draw(&mut self) -> JsValue { + match self.game.draw() { + Ok(()) => self.ok_js(), + Err(e) => Self::err_js(e), + } + } + + /// Move `count` cards from pile `from` to pile `to`. + /// + /// Pile names: `"stock"`, `"waste"`, `"foundation-0"` .. `"foundation-3"`, + /// `"tableau-0"` .. `"tableau-6"`. + /// + /// Returns `{ok, error?, snapshot?}`. + pub fn move_cards(&mut self, from: &str, to: &str, count: usize) -> JsValue { + let from_pile = match Self::pile_from_str(from) { + Ok(p) => p, + Err(e) => return Self::err_js(e), + }; + let to_pile = match Self::pile_from_str(to) { + Ok(p) => p, + Err(e) => return Self::err_js(e), + }; + match self.game.move_cards(from_pile, to_pile, count) { + Ok(()) => self.ok_js(), + Err(e) => Self::err_js(e), + } + } + + /// Undo the last move. Returns `{ok, error?, snapshot?}`. + pub fn undo(&mut self) -> JsValue { + match self.game.undo() { + Ok(()) => self.ok_js(), + Err(e) => Self::err_js(e), + } + } + + /// Apply one auto-complete move (only valid when `is_auto_completable`). + /// Returns the post-move snapshot or `null` when auto-complete is unavailable. + pub fn auto_complete_step(&mut self) -> JsValue { + if !self.game.is_auto_completable { + return JsValue::NULL; + } + match self.game.next_auto_complete_move() { + Some((from, to)) => { + let _ = self.game.move_cards(from, to, 1); + self.ok_js() + } + None => JsValue::NULL, + } + } +} + #[cfg(test)] mod tests { use super::*;