sos
@jeffy24

sos

Play SOS on a cute synced 3D board with S/O choices, scoring lines, and a one-move finish drill.

About this tile

SOS is a compact abstract board game on a synced 5x5 grid. Each turn the active player chooses S or O, then taps an empty square. Every newly completed SOS line scores one point and lets that player move again; otherwise the turn passes. When the board fills, the higher score wins.

The app keeps the board touch-first and polished with a Three.js scene, animated X/O pieces, clear empty-cell hit targets, a symbol selector, a near-win drill, and a top-right help button for quick rules.

What you can do

  • Choose every mark: Pick S or O on each turn before tapping an empty square.
  • Score real SOS lines: Horizontal, vertical, and diagonal S-O-S lines score immediately.
  • Keep the turn when you score: Multi-line placements can score more than once.
  • Practice a drill: Load a deterministic final-square position, then finish it with one S placement.
  • Play in a Poe frame: Synced-store keeps the round state consistent across the app instance.

Development

  • ./scripts/doctor.sh checks the local toolchain.
  • bun run type-check verifies TypeScript.
  • bun test runs synced-store and happy-dom UI tests.
  • bun run test:playwright builds and runs browser tests.
  • SCREENSHOT_REGEN=1 bunx playwright test tests/screenshot.test.playwright.ts regenerates assets/screenshot.png.