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 进行混合编程。