第 20 课：模块脚本：把规则装进工具箱

请先阅读对应网页。这里按章节提供代码，可能包含先后替换的实验版本，不要全部同时运行。
.luau 文件内容请复制到指定 Script / LocalScript / ModuleScript；.txt 是层级或说明，不是可执行代码。
第 25 课默认 PRACTICE=true，不连接云端，也不跨 Stop 保存。第 28 课包含明确标注的故意错误实验。

01 · 创建模块，不是普通 Script
确认两个对象类型分别是 ModuleScript 与 Script。
删掉模块默认的空表示例内容，替换成下一节的完整代码。

02 · 模块返回一个装着函数的表
将代码放入 RewardRules。
找到 return RewardRules，它把工具表交给 require 的调用者。
读懂 math.floor(count)==count：它检查数量是否为整数。

文件：02-module.luau
位置与用途：ServerScriptService > RewardRules（ModuleScript）

03 · require 取回模块的返回值
将下方代码放进 RewardDemo。
Play 后应看到 All reward checks passed。
若断言失败，Output 会指出对应行；先核对期望值与计算规则。

文件：03-require.luau
位置与用途：ServerScriptService > RewardDemo（Script）

04 · 有意制造一次错误
把无效输入依次换成 1.5 和 "3"，两者都应被拒绝。
不要为了让测试变绿就删掉断言；先决定规则应不应该允许这个值。
让故意失败的实验保持明确注释，避免误认成未修复错误。

05 · 把变化集中在一个地方
保持旧版本，修改单颗奖励为 20，再算出三个测试的预期值。
确认测试失败能指出规则变化，而不是无声通过。
恢复或保存你选择的奖励版本。

