Web上的推箱子游戏Sokoban
先预祝大家节日快乐~
Sokoban 是老苏最喜欢的益智游戏之一,放假了,当然要放松一下啦;
什么是 Sokoban ?
这个项目是一个
Sokoban的克隆,只是为了演示React和Hooks的使用。它具有无限撤消和近500个推箱子谜题。
如果不想安装,可以试试官方站点:https://ecyrbe.github.io/sokoban/
构建镜像
如果你不想自己构建,可以跳过,直接阅读下一章节
老苏是基于源代码构建的镜像, Dockerfile 如下:
| 1 | FROM node:lts-alpine as build-base | 
构建镜像和容器运行的基本命令如下👇
| 1 | # 下载代码 | 
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 wbsu2003 ,下拉找到 wbsu2003/sokoban,版本选择 latest。

端口
本地端口不冲突就行,不确定的话可以用命令查一下
| 1 | # 查看端口占用 | 
| 本地端口 | 容器端口 | 
|---|---|
| 7180 | 80 | 

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
| 1 | # 运行容器 | 
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
| 1 | version: '3' | 
然后执行下面的命令
| 1 | # 新建文件夹 sokoban | 
运行
在浏览器中输入 http://群晖IP:7180 就能看到主界面

操作很简单
| 按键 | 操作 | 
|---|---|
| ↑ | 向上移动 | 
| ← → | 左右移动 | 
| ↓ | 向下移动 | 
| backspace键 | Undo回退一步 | 
| escape键 | restart level重新开局 | 
| ENTER键 | load next LEVEL下一关 | 

关数保存在浏览器的 Local Storage –> SokobanLevel 中

将 Value 改为 200,然后刷新页面

老苏试了一下,Value 最大可以到 489,也就是说一共有 490 关

现在你可以随心所欲的玩耍了,再次㊗️大家节日快乐~
参考文档
ecyrbe/sokoban: sokoban with react hooks and typescript
地址:https://github.com/ecyrbe/sokobanSokoban 在线游戏
地址:https://ecyrbe.github.io/sokoban/
