← 第5阶段学习单元乡村AI创生实验室

阶段 5 / UNIT 29 / 5 OF 6

下次接着玩:存档与读取

关掉游戏再打开,什么应该记得,什么不必记得?

用JSON保存必要状态,检验异常文件并避免损坏当前进度。

建议180分钟 · 可拆3次60分钟

今天要做成什么

跨运行恢复进度;缺失或损坏存档不崩溃、不篡改当前状态。

先完成上一阶段作品。准备电脑、鼠标、Godot 4.6.1标准版与纸笔。没带电脑的伙伴可以先做预测和纸面设计,再轮换亲手操作。

下载起步工程下载参考完成工程

两个包保留同一套可读的学习脚手架,lesson.gd中的LEVEL控制已启用的能力。打开对应脚本、解释并修改本课函数,再启用新进度;只改等级数字不算完成。没有新功能的设计、试玩与导出课,用作品修改和记录体现进展。

解压到不同文件夹,导入project.godot,打开main.tscn运行。手机用于阅读课程,Godot工程需在电脑打开。每包README包含本课任务;优先继续自己的工程,起步包用于补课与恢复。

把想法变成可以验证的作品

1. 挑选要保存的内容

只保存版本、背包种子、箱内数量、任务状态;位置读档后回安全起点。列出不保存的临时信息:路径、粒子、界面文字。

2. 理解保存位置

LEVEL改为5;F5写入user://fanpu-course-单元号.json,F9读取。user://是这台设备当前用户的应用数据目录,不是网站服务器,也不会自动跨设备同步。

3. 读写与失败

在save_game中看FileAccess.open、空值检查、JSON.stringify。load_game先检查文件存在和能否打开,再解析;不能把任何文本都当有效进度。

4. 验证后再赋值

valid_save检查字典、字段、整数、范围与总量一致,再修改游戏数据。用备份文件实验损坏JSON、缺字段、负数;无效时提示并保留当前状态。不要改系统文件。

5. 重启与覆盖测试

收两颗→F5→R重置→F9读回;退出重开再读。完成任务后保存、重启读回,不能再次领取。R不删除磁盘档,F5会覆盖本课自己的旧档,实验前复制备份。

这一课读懂这一部分

位置:systems.gd:valid_save。下面来自参考工程,依赖工程内已有节点与变量;不要把同名函数重复粘贴。先指出输入、条件与变化,再比较自己的版本。

func valid_save(d: Variant) -> bool:
	if not d is Dictionary:
		return false
	for key in ["version","seed","stock","quest"]:
		if not d.has(key) or not (d[key] is float or d[key] is int):
			return false
		if not is_finite(float(d[key])) or float(d[key]) != floor(float(d[key])):
			return false
	if d.version != 1 or d.seed < 0 or d.seed > 3 or d.stock < 0 or d.stock > 3 or d.quest < 0 or d.quest > 2:
		return false
	return d.seed + d.stock == (0 if d.quest == Quest.DONE else 3)

完成证据与可选挑战

基础:跨运行恢复进度;缺失或损坏存档不崩溃、不篡改当前状态。

挑战:设计显式版本迁移:遇到不同version先提示,而不是偷偷猜字段。

留下:保存前后数据对照、三类坏档测试。

我原先预测____;我实际观察____;我只改变了____;再次验证的结果是____。

卡住时,从这里检查

找不到存档

在项目菜单打开用户数据文件夹,确认当前工程对应的单元号。

JSON能解析却不合理

解析成功不代表业务有效,要继续检查范围与守恒。

让AI帮助理解,让英语来自经历

可以把本课问题“关掉游戏再打开,什么应该记得,什么不必记得?”交给AI,请它用例子解释或提出测试情况。给出实际节点名和错误原文,每次只采纳一项修改并运行验证。不要把整份工程、家庭信息或账号口令交给AI。

每个孩子贡献当天真正用过的三个英文词,例如 save · load · data。先共同回忆一段真实经历,再借助AI写成短故事,大家核对、听读、表演或配图。另留15—20分钟,允许先用中文表达。

土星老师的备课提示

本课重点:用JSON保存必要状态,检验异常文件并避免损坏当前进度。以“跨运行恢复进度;缺失或损坏存档不崩溃、不篡改当前状态。”判断是否可以继续。7—15岁混龄约15人时,可结成2—3人伙伴组,大小伙伴轮换操作者与观察者,大孩子通过解释帮助伙伴成长;每个人都要留下自己的操作或判断证据。

先确认基础,再进入挑战。首次接触的孩子可以口述、画图和修改一个参数;熟练者解释规则、设计反例并协助调试。不以输入英文的速度分高低。若基础未完成,下次继续,不压缩休息赶进度。

分钟学习节奏
0—10观察作品、说预测
10—25土星老师拆解一个关键概念
25—50第一次动手与验证
50—60离屏休息,可在此结束第一次学习
60—80完成基础任务,轮换操作
80—90离屏休息
90—110边界测试与伙伴反馈
110—120保存进度与离屏休息
120—145第二次实验或整合
145—155离屏休息
155—175独立试玩与复测
175—180整理记录与下一步

课间走出创生空间即可进入凡朴农场。在约定的活动范围内,可以休息、自由探索草坪菜地,或由土星老师即兴组织观察与小游戏。英语回顾和农场活动另行安排,不挤占必要的动手时间。