在浏览器里还原《小丑牌》的核心循环:选牌 → 算分 → 进商店 → 下一轮。
- 牌型与倍率:从高牌到同花五条共 13 种,筹码 × 倍率 × 乘算;
- 五十多张小丑:花色加成、牌型条件、乘算、经济流都有;
- 完整单局:8 轮盲注配置、Boss 限制、商店刷新与利息。
React 18 + Vite 构建,最终打包成一个可以直接打开的 HTML。🃏
🎮 玩法介绍
- 选牌 → 出牌 → 算分 → 逛商店,在有限的出牌次数内凑够盲注分数。
- 13 种牌型决定基础「筹码 × 倍率」,五十多张小丑牌负责把数字继续放大。
- 8 轮盲注,目标从 300 一路涨到 150000;Boss 盲注会附加额外限制。
- 商店刷新、利息与强化牌,让每一轮都要在「现在」和「以后」之间做取舍。
🧱 技术栈
React 18ViteJavaScriptuseReducervite-plugin-singlefile
- React 18 函数组件,整局状态交给一个 useReducer 状态机。
- Vite 构建,vite-plugin-singlefile 把 JS / CSS 内联成一个自包含 HTML。
- Fisher–Yates 洗牌、chips × mult × xMult 算分,纯前端无后端。
- 打包后约 200KB,挂在静态站里即点即玩。
📁 源码说明
React 源码在仓库的 projects/balatro/ 目录(Vite 工程),
jokers.js 等文件定义小丑牌与算分逻辑。构建产物被复制到
public/games/balatro/index.html,随 Astro 站点一起发布。
- 已知限制:商店 voucher 与个别小丑尚未实现,第 8 轮的胜利判定还在修。
- 预览用的就是线上同一份构建产物,加载后不会再请求额外资源。