瀏覽器新接龍(FreeCell):八列牌、四個暫存格、四座回收格;純前端單機小局。依需求把所有牌排入回收座即勝。mobile-first,桌面加寬。
也可當作 Playgrounds(遊樂場) 的 SAM(index.html 入口)。
https://play.samkuo.me/?open=sampot/pg-freecell&name=新接龍&fresh=1
同源會重用本機已匯入的沙盒;要強制新建可加 &fresh=1。
npx --yes serve .
# 或
python3 -m http.server 8080點一下頁面後音效才會出聲。
| 操作 | 說明 |
|---|---|
| 點牌列底部 | 選取「可一次搬走的整段 run」 |
| 拖牌到目的地 | 拖到底即可分批搬 |
| 點暫存/回收格 | 當目標;或當來源(暫存格) |
| 自動歸位 | 把能安全放上回收座的牌全部送上去 |
| 重來本局 | 重新洗牌(同發牌) |
| 開新局 | 重新洗牌並清空快照/最快紀錄 |
- 52 張全數翻開,依序發成 8 列(前 4 列 7 張,後 4 列 6 張)。
- 回收格:依花色從 A 排到 K,完成四座即勝利。
- 暫存格:4 格,各可暫放一張,隨時取回。
- 牌列:同名異色、由大到小(例:黑 6 可接紅 7);可一次搬走整段連續合法 run。
- 複數移動上限 = (空格暫存數 + 1) × 2^(空列數);剛開局可搬 1 張,1 個空列就能搬 2 張……依此推。
- 「自動歸位」會把能安全回收的牌一次清掉,省力又防錯。
| 檔案 | 說明 |
|---|---|
index.html |
結構 |
styles.css |
手機優先/桌面遞增、牌桌視覺 |
app.js |
UI、點選/拖放、自動歸位、KV 紀錄 |
game.js |
發牌、規則(純函式,方便單元測試) |
audio.js |
Web Audio 合成音效 |
game.test.js |
Vitest 規則/移動單元測試 |
assets/cards/ |
52 張 PNG(Kenney.nl CC0) |
functions.js |
Playgrounds 可選 stub |
前端透過 GET /api/kv/pg-freecell-best 讀、PUT /api/kv/pg-freecell-best 寫;過關時若當前步數更低即更新。沒有 KV 環境(純本機 serve)時也照玩,只是不跨場保存。
MIT