使用 Rust 构建骰子游戏是一门实践项目课程,适合已掌握 Rust 基础、希望把小函数组合成可玩的终端游戏的学习者。你将制作一场三回合对局,每回合有五枚骰子,可选择三种计分类别,最终得到一张能根据所记录选择重新计分的完整记分卡。
两个引导实验将带你从类型化计分规则走向合法的回合状态变化,一个挑战实验则要求你把相同规则应用于另一场对局。每个实验都有独立准备的项目;实验之间延续知识,不依赖上一环境的文件。
你将学到什么
完成本课程后,你将能够:
- 用枚举表示计分类别,并用
match计算各类别的得分; - 计算总和、最高对子和五连的分数,包括合法的零分;
- 每回合接受一个尚未使用的类别,并在无效或重复选择后保留当前骰子;
- 将每回合的骰子、类别和得分保存到
match.tsv,再回放这个确切文件并重新计算总分; - 用固定骰子点数检验规则,并借助准备好的随机掷骰器和输入界面完成对局。
本课程适合谁
本课程适合准备把熟悉的语言特性组合成小型交互程序的 Rust 学习者。
前置要求: 基本终端操作,以及 Rust 函数、数组、枚举、match 和 Option。Rust for Beginners 提供相关基础。第二个引导实验会按需讲解 struct、Vec、使用 &mut self 的可变方法、Result 和切片。
学习环境: LabEx 提供浏览器中的 Linux Terminal 和准备好的 Rust 项目。输入界面和随机掷骰器已提供;你负责实现计分与记分卡行为。终端提示和程序输出保留英文。
常见问题
需要游戏开发经验吗?
不需要。游戏只有三条简短且明确的计分规则,无需图形、游戏引擎或必胜策略。
零分意味着这一回合失败了吗?
不是。合法的类别选择即使得到零分,也会完成该回合。无效或已使用的类别会被拒绝,当前骰子不会重新掷出。
需要预留多长时间?
作者估计需要 110–150 分钟,包括阅读和处理普通错误。该估计尚未经过初学者走读验证。


