目录

MoonTetris

License MoonBit

MoonTetris 是一个完全由 MoonBit 语言编写、编译为 WebAssembly 并在 Web 端通过 Canvas 2D 渲染的高性能俄罗斯方块游戏。本项目探索并验证了 MoonBit 在无第三方游戏引擎依赖下直接驱动 Web 交互应用的生态潜力。

✨ 特性

  • 🎮 完整核心机制: 实现了严谨的 SRS (Super Rotation System) 旋转系统,包含所有经典的踢墙 (Wall Kick) 规则测试。
  • 高性能 Wasm: 核心逻辑完全使用 MoonBit 编写,编译为极小、极快、内存安全的 WebAssembly 字节码。
  • 🎨 独立渲染层: 通过 FFI 直接操作 HTML5 Canvas API 进行绘制,无庞大依赖,启动速度极快。
  • 🧪 海量测试覆盖: 拥有超过 8000 行严密的单元测试,全面覆盖了每一块的位移、旋转和碰撞逻辑。

🚀 快速开始

环境依赖

确保您已安装了 MoonBit CLI 工具链 以及 Python3(用于本地 HTTP 服务)。

编译

克隆本项目后,使用 moon 命令将核心逻辑编译为 Wasm:

moon build --target wasm

如果您修改了源码,编译产物将会自动生成。您可以将编译出的 Wasm 文件拷贝到 web 目录下(如果尚未拷贝):

cp _build/wasm/debug/build/src/src.wasm web/moon_tetris.wasm

运行

进入 web 目录并启动本地静态服务器:

cd web
python -m http.server 8080

然后打开浏览器访问:http://localhost:8080/index.html 即可开始游戏!

🕹️ 游戏控制

  • ← / → : 左右移动方块
  • : 顺时针旋转
  • : 软降(加速下落)
  • Space (空格) : 硬降(直接落地)
  • C : 暂存方块 (Hold)
  • Enter : Game Over 后重新开始游戏

🛠️ 测试与验证

项目中包含了覆盖所有边界用例的核心逻辑测试。您可以通过以下命令运行测试套件:

moon test

所有测试均经过了严格校对,总计 8000 余行代码,可放心查阅 src/game_test.mbt 获取技术细节。

📜 许可证

本项目采用 Apache 2.0 许可证开源。

关于

MoonTetris 是一款完全使用 MoonBit 编写、通过 WebAssembly 运行于浏览器端的经典俄罗斯方块游戏。

75.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号