3.1.3 安安猜价格行为编辑

整个安安猜价格的流程如图3- 3所示。

图3- 3猜价格的行为流程图

(1)随机产生一个价格

首先要让系统随机产生一个礼物的价格,并保留起来。以后每次输入用户猜的价格后要和这个价格比较。这需要一个价格“变量”来实现。 在AI2中,使用“变量”内置块定义变量,“初始化全局变量…为…”模块用来定义全局变量,如图3- 4所示,其中模块中“我的变量”表示变量名,由用户根据需要进行修改,要注意同一个屏幕中变量名称不能够重复。在此例把变量名修改为“价格”,

图3- 4“变量”内置块

变量“价格”的值要初始设置为系统随机产生的1-100之间的整数,在定义时可以调用“数学”内置块中“随机整数”模块进行初始化,如图3- 5所示。

图3- 5 随机整数模块

在本例中还需要记录猜测的次数,每次猜测都会加一,因此还需要一个“计数”变量,改变量的初始值设为数值0。定义好的两个全局变量如图3- 6所示。

图3- 6 定义全局变量

(2)猜测次数加1

变量定义好后,应用变量实现猜测次数计数功能,当用户单击1次“确定”按钮,已猜次数增加1次,并在App界面显示。具体实现代码如图3- 7所示。 图3- 7计数功能的实现代码

实现的思路就是当每次点击“确定”按钮,让全局变量“计数”值在自身数值上加1,设置“标签_计数”的文本值为当前计数值。

定义全局变量后,在“变量”内置块使用“取…”模块获取并使用全局变量,使用“设…为…”模块给选取的全局变量重新赋值。或者直接在工作面板中通过鼠标悬浮于变量名上同样也可以获取变量名及重新赋值,如图3- 8所示。

图3- 8鼠标悬浮于变量

(3)判断是否猜中价格

当用户在文本框中输入数字时,系统要对输入值与前面随机产生的价格进行大小判断。这将面临三种情况,即:“输入值=价格” 、“输入值<价格”和“输入值>价格”,而针对不同的情况,需要给用户不同的反馈,系统所执行的语句也将有所不同。 在App Inventor中,提供了这种面对不同条件控制程序运行流程的模块,即“如果…则…”条件分支模块。由于本例中要针对三种情况做出不同的执行语句,因此需要多次判断。“如果…则…”模块缺省的形态如图3- 9(a)所示,只有一个条件槽,如果需要针对更多情况进行处理,则可以通过点击左上角蓝色齿轮小图标展开拼接模块,根据需要拖入即可,如图3- 9(b)所示。最终本例中需要用到的三种条件判断模块如图3- 9(c)所示。

图3- 9所用到的多条件判断模块

整个判断价格是否猜中的实现思路如下:如果“输入值=价格”条件成立,那么说明用户猜中价格,则执行设置相应提醒文本内容、不启用文本输入框和确定按钮、设置图片的程序,否则继续判断“输入值<价格”是否成立,如果成立,则执行设置“猜低啦”“继续加油”提醒文本的程序,如果不成立则继续判断“输入值>价格”是否成立,如果成立,则执行设置“猜高啦”“继续加油”提醒文本的程序。具体实现代码如图3- 10所示。

图3- 10判断用户是否猜中价格的行为实现

在猜对价格时之所以会加入设置价格文本输入框和确定按钮的启用状态为假的语句,主要目的是了增加用户体验,防治出现猜对了在没开始新一局时还能继续猜的情况,否则将导致计数错误等问题。

(4)实现“重新开始”

当用户在任何时候点击“重新开始”,App都会恢复到打开时的初始界面,而且还需要把所有用户不能直接看到的内部变量值也要进行初始化。处理的流程如图3- 11所示,实现代码如图3- 12所示。

图3- 11“重新开始”按钮被点击所触发的行为流程图

图3- 12“重新开始”按钮功能实现代码

图3- 13本案例所有代码

至此,本案例的初步开发工作就完成了,所有代码如图3- 13所示。下一步就可以进行安装调试了。

results matching ""

    No results matching ""