跳转至

MoonBit 版本

MoonBit 是由 IDEA 基础软件中心 的张宏波发起的编程语言项目。

谨慎上手

MoonBit 语言尚未发布稳定版,正处于快速开发、迭代的阶段,可能存在各类无法提前预知的问题。

我们仅推荐 对 Rust 较为熟练 的同学尝试 MoonBit 版本。点击 这里 回到 Rust 版本的指南。

对于使用 MoonBit 开发过程中遇到的各类问题,课程建立了与开发人员的直接联系渠道(将另行发布),欢迎大家及时询问和反馈。

代码编写

MoonBit 代码与 Rust 共用同一份代码模板,所有 MoonBit 相关的代码均位于 wordle-mbt 目录下。 选择 MoonBit 版本的同学请仔细阅读该目录下的 README.md,尤其是开发文档、两种语言的部分差异、如何选择版本运行测试。

分数计算

如果选择完成本作业的 MoonBit 版本,分数计算公式为:

\[ S = \min (S' \times 1.1, 100) \]

其中 \(S'\) 是按照 Rust 版本的评分标准得到的原始分数。

额外加分

如果在完成作业的过程中,对于 MoonBit 语言的发展有贡献,如发现或修复 Bug、提出修改建议并被采纳,或者在 MoonCakes 贡献了高质量的第三方库,则可能获得课程整体的额外加分(与其他加分合计不超过 5 分)。

此部分加分需要在课程结束时单独提交,并由教学团队最终决定。

作业要求

基础要求部分的所有需求均可通过 MoonBit 实现,但可能由于缺乏部分第三方库(如 serde, clap),需要自行实现部分基础功能。

提高要求部分的额外说明如下:

  • 设计用户界面:
    • TUI:使用 MoonBit 实现 TUI 理论上可行,但可能非常复杂,因此不推荐;
    • GUI:MoonBit 目前无法进行原生 GUI 开发;
    • Web:由于 MoonBit 原生即编译为 WebAssembly,此部分选项保留,但分数降低为 15 分。
  • Wordle 求解:此部分要求全部保留。如果 MoonBit 的性能或特性不能满足需要,可以通过 Rust 实现部分数据的预计算,或者与 Rust 进行混合编程。