友情提示:380元/半年,儿童学编程,就上码丁实验室。

第5课 编写程序——设计游戏结尾
到目前为止,我们只是用屏幕的标题来显示游戏结束的状态,我们需要为游戏设计一个正式的结尾,并实现一些重要的功能。这些功能包括:
- 显示游戏得分;
- 显示历史最高得分;
- 清除历史记录;
- 返回游戏;
- 退出游戏。
上述功能的实现主要依赖于对话框组件及微数据库组件。我们需要创建一个名为游戏结束的过程,并在适当的位置调用该过程。
1、显示游戏得分
有两种情况会导致游戏结束:①剩余时间=0;②翻牌对数=8。这两种情况需要分别加以考虑,其中关键条件是剩余时间是否>0。如果剩余时间>0,则计算总分,否则将没有成绩。
对话框组件提供了很多内置过程(紫色的代码块),在调用这些过程时,屏幕上会弹出一个对话框:有些对话框只显示简单的信息,信息停留片刻后,就会慢慢隐去;有些则可以显示多项信息,并提供若干按钮供用户选择。在用户选择了某个按钮之后,将触发“选择完成”事件,开发者可以从事件携带的消息中,获得用户的选择,并针对不同选择,执行不同的程序分支。在游戏结束过程中,我们先使用一个简单的只带一个按钮的内置过程,如图1- 39所示。




2、保存游戏得分
针对剩余时间>0的情况,我们用一张流程图来理清解决问题的思路,如图1- 43所示。



3、处理对话框的按钮选择
在对话框组件提供的“完成选择”事件里,我们可以通过事件程序中的“选择值”来侦测用户的选择。事件处理程序如图1- 46所示。这里我们暂时用屏幕的标题栏来显示程序的执行结果,稍后我们将写一个游戏初始化过程:当用户点击“Cancel”或“返回游戏”按钮时,将开始新一轮的游戏。

4、创建游戏初始化过程
如图1- 47所示,游戏初始化过程将实现以下功能:
- 生成新的随机图案列表
- 让所有卡片显示背面图案
- 让全局变量翻牌对数=0
- 让全局变量剩余时间 = 60
- 让滑块回到起始点
- 得分显示为0
- 启动游戏计时器,开始新的一轮游戏。

