Paws & Pawns: Kingdom of Beasts —— 一款卡通动物风格的国际象棋网页游戏。 完全遵循国际象棋规则,动物棋子替代传统棋子,悬浮说明卡帮新手边玩边学, 提供 幼兽 / 游侠 / 狮王长老 三档难度与四档让子。
- 动物即棋子:狮子=王、母狮=后、大象=车、猫头鹰=象、袋鼠=马、小鸡=兵。
- 悬浮说明卡(教学核心):把鼠标悬到任意棋子上,即会显示它对应哪个标准棋子、 怎么走、以及特殊本领(如小鸡到底线可“长大”成任意大动物)。
- 三档难度:
- 🐾 幼兽(Cub)—— 浅搜索 + 较高失误率(按开局/中局/残局递减),适合新手。
- 🏹 游侠(Ranger)—— 中等搜索 + 开局库 + 少量失误。
- 👑 狮王长老(Elder Lion)—— 更深搜索 + 完整开局库 + 零失误。
- 让子对局:公平 / 让一兵 / 让一马象 / 让一车,缩小与高难度的差距。
- 双阵营:草原族(暖金,执白先手)与苔原族(冷蓝,执黑后手)。
- 完整对局体验:棋谱记录、战利品与子力优势、悔棋、提示、翻转棋盘、认输、 升变选择、将军提醒、结算页,进度自动存入 localStorage。
- 构建:Vite 5 + React 18 + TypeScript(strict)
- 规则引擎:chess.js 作为合法性的唯一裁判
- AI:纯 JS 实现的 Negamax + Alpha-Beta 剪枝 + 静态搜索(quiescence), 运行在 Web Worker 中避免阻塞 UI;带 确定性失误注入(以局面哈希做种, 悔棋不会重掷失误骰子)与 安全阀(不自寻将死、不白送车/后)。
- 状态:zustand
- 样式:原生 CSS 变量 + CSS 过渡(无 UI 框架依赖)
- 美术:矢量 SVG(渐变高光营造轻度立体感),阵营配色可实时切换
设计文档最初讨论过接入 Stockfish WASM。实际实现选择了 纯 JS Minimax,原因是: 零外部资源依赖、部署可靠、包体小、易于内建“可控失误”的教学型难度曲线。 狮王长老档的搜索深度受浏览器实时性约束,封顶在可秒级返回的深度, 强度定位为“稳健的业余对手”,而非引擎级。
npm install
npm run dev # 开发服务器
npm run build # 类型检查 + 生产构建到 dist/
npm run preview # 预览生产构建(http://localhost:4173)src/
data/ 棋子映射、难度配置、让子 FEN、文案库
engine/ 评估函数、搜索、开局库、AI Worker 与主线程客户端
store/ zustand 游戏状态(以 chess.js 为单一数据源)
components/ 棋盘、动物 SVG、说明卡、升变弹窗
screens/ 主菜单 / 对局 / 结算
设计方案见仓库外的 DESIGN.md(本作依据其 v1.3 实现)。