# Pipe Rotate · Changelog

## v0.1 (2026-05-13)

### Added
- 单文件 HTML 598 行（含 5 关数据 + 5 种管道 Canvas 绘制 + 水流逐格动画）
- 5 种管道形状的 Canvas 路径绘制（无图片资源）：STRAIGHT / ELBOW / TEE / CROSS / TERMINAL
- 位运算管道方向系统（N=bit0, E=bit1, S=bit2, W=bit3）
- 顺时针 90° 旋转 + 220ms easeOutCubic 缓动动画
- 水流逐格推进算法（1 格 / 0.5s）：inlet 0-250ms 填、outlets 250-500ms 填
- TEE/CROSS 多出口并行充水
- BFS 死路检测（所有水流前沿封闭 + 终点未达 = 立即失败）
- 30 秒倒计时 + 水流计时条 HUD
- 5 关手工设计（4×4 → 7×7）+ 全部可程序化验证可解
- 通关金色闪屏 + 40 颗粒子 + 三音和弦
- 失败红色闪屏 + 30 颗粒子 + 低频锯齿音
- localStorage 保存每关最少步数（pipe-rotate-best-lN）
- 触屏 touchend 兼容
- 起点 S / 终点 E 脉动标记
- GET READY 1.5s 准备倒计时（中央 120px 数字）

### Dev Notes
- 旋转通过 ctx.rotate + 坐标转换实现；水流 inlet 计算用 `(worldFromSide - rot + 4) % 4`
- 水流锁定：cell.flooded 一旦设置即拒绝 rotateCell
- 5 关 SOLUTIONS 经过 Node.js 独立模拟验证全部可解
- 无外部资源、无外部库、无构建工具
- `src/` 与 `build/` 同步
