LeeGoDamn/sokoban

★ 0Forks 0TypeScriptGitHub ↗Compare

README

📦 推箱子 (Sokoban)

经典的推箱子网页游戏,使用 TypeScript + Vite + Tailwind CSS 构建。

🎮 游戏地址

https://LeeGoDamn.github.io/sokoban/

✨ 特性

  • 🎯 8 个精心设计的关卡 - 从入门到终极挑战
  • ⌨️ 键盘控制 - 方向键或 WASD 移动
  • 📱 移动端支持 - 虚拟方向键
  • ↩️ 撤销功能 - 随时悔棋
  • 📊 步数统计 - 挑战最少步数
  • 🎨 精美 UI - 现代渐变设计

🎯 游戏规则

  1. 玩家控制蓝色小人
  2. 把所有黄色箱子推到红色目标点上
  3. 箱子只能推,不能拉
  4. 箱子一旦进入死角就无法移动

🕹️ 操作说明

操作 键盘 移动端
向上移动 ↑ / W 上按钮
向下移动 ↓ / S 下按钮
向左移动 ← / A 左按钮
向右移动 → / D 右按钮
撤销 Ctrl+Z 撤销按钮
重置 R 重置按钮

🚀 本地开发

# 安装依赖
npm install

# 开发模式
npm run dev

# 构建生产版本
npm run build

📁 项目结构

sokoban/
├── src/
│   ├── main.ts          # 入口文件
│   ├── style.css        # 样式
│   └── game/
│       ├── types.ts     # 类型定义
│       ├── levels.ts    # 关卡数据
│       ├── Renderer.ts  # 渲染器
│       └── Game.ts      # 游戏逻辑
├── docs/                # 构建产物
├── .github/workflows/   # GitHub Actions
└── package.json

🏆 关卡列表

  1. 第一关 - 入门
  2. 第二关 - 双箱
  3. 第三关 - 角落
  4. 第四关 - 迷宫
  5. 第五关 - 挑战
  6. 第六关 - 进阶
  7. 第七关 - 大师
  8. 第八关 - 终极

享受游戏! 🎮✨

Issues