小学生系列之七——猜数游戏(1)

一、功能描述

游戏自动出题——生成一个1~100之间的随机数,玩家输入猜测值,并统计猜测次数,猜中后显示本次猜中所用次数以及最小猜中次数;猜中之后,玩家可以选择出新题,或退出游戏。

二、用户界面


三、组件命名及属性设置

组件类型

命名

属性

属性值

屏幕

Screen1

标题

猜数游戏

水平对齐

居中

水平布局

水平布局1

宽度

充满

按钮

出题

宽度

充满

显示文本

出题

启用

取消勾选

退出

显示文本

退出

水平布局

水平布局2

宽度

98%

标签

标签1

显示文本

猜测次数:

猜测次数

显示文本

0

水平布局

水平布局3

宽度

98%

标签

标签2

显示文本

最少次数:

最少次数

显示文本

100

标签3

宽度

充满

显示文本

题目数:

文本对齐

居右

题目数

宽度

50像素

显示文本

0

水平布局

水平布局4

宽度

充满

文本输入框

猜测值

字号

36

高度

80像素

宽度

充满

提示

仅限数字

勾选

文本对齐

居中

按钮

确定

高度、宽度

80像素

显示文本

确定

标签

提示

显示文本

输入数字,然后点击确定

文本对齐

居中

注:表格中的粗线界定了布局组件与可视组件之间的包含关系。

四、页面逻辑

1、游戏开始时:

  • 自动生成目标值——一个1~100之间的随机数;

  • 题目数显示为1;

  • 最小猜中次数为100;

  • 禁用出题按钮;

2、玩家在输入框中输入猜测结果,并点击确定按钮:

  • 如果猜测值等于目标值:

    a)提示“猜中了!”;

    b)比较最小次数与猜测次数,并更新最小次数的显示结果;

    c)启用出题按钮;

  • 如果猜测值大于目标值,则提示“大了!”;

  • 如果猜测值小于目标值,则提示“小了!”;

  • 统计并显示猜测次数;

3、玩家猜中结果后,可以点击出题按钮:

  • 生成新的目标值;

  • 禁用出题按钮;

  • 猜测次数归零;

  • 显示题目数+1;

4、退出游戏:玩家可以在任何时候选择退出游戏。

五、认识代码块

1、随机数

图中的代码块用来生成随机整数,它给出的值可能是1~100之间的任意一个整数。随机数是游戏开发中不可缺少的工具,它产生了不确定性,从而增加了游戏的趣味性与难度。1与100这两个值可以随意修改,我们这里就采用它的默认值。

2、全局变量

出题时生成的随机数只是一个数值,它就像我们在路上遇到的陌生人,如果你不记下他的名字和电话号码,他很快就会消失在茫茫人海之中,再也难以寻见。在程序中要向记住某个值,就要用到变量,如上图所示,变量的名字(目标值),就像剧本中主角的名字一样重要,一个有意义的名字,会让开发过程变得轻松和顺畅,也让代码易于阅读。你可以读读看下图中的代码:“如果猜测值(的显示文本)=目标值,则……”,这样的代码意图明确,表明我们的思路也很清晰。

3、组件属性值等同于全局变量

上图中代码块用于更新题目数及猜测次数,这里有两个技术要点需要说明:

(1) 新值 = 原有值 + 1 ,这样的写法在程序中比比皆是,这里的等号不同于数学中的等号,它代表了两次具有先后顺序的操作:

a) 时间点1(在先):取得某个量的当前值,进行加法运算,取得运算结果;

b) 时间点2(在后):将运算结果保存到变量中,或显示为组件的属性值;

(2) 如标题所说, 组件的属性值与全部变量具有相同的作用,它们都可以用来保存数据,不同的是,变量对于用户(应用的使用者)来说是不可见的,而组件的某些属性值对用户是可见的(如标签的显示文本)。

在实际开发中,巧妙地运用组件的属性值,可以减少全局变量的使用数量,进而减少程序对内存的占用。

4、按钮也可以显示图片

如上图所示,当猜对结果时,让确定按钮显示一张OK的图片,可以让用户界面更加友好,改善用户的使用体验,这也是应用开发中需要关注的地方。

5、标签的用法

标签在应用中有两种用法,一是用于显示固定不变的文字,如本应用中的标签1,用来显示“猜测次数:”;另一种用法如上图所示,标签在程序运行过程中显示的内容是可变的。

6、字串的拼接

在上面的图中,我们看到后面的三个代码块中,都使用了“拼字串”块,将某些可变的值与不变的值拼接在一起,起到提示用户的作用。就像数字可以进行加法运算一样,文本的拼接是文本类数据最常见的“运算”方法,目的在于生成一串可变的文本。

7、退出程序

如上图所示,退出程序的指令让应用停止运行,即退出应用。这项功能无法在AI伴侣中进行测试,只有将应用编译安装到手机上之后,这个指令才能生效。

六、操作技巧

1、定义过程提高代码复用性

如上图所示,在程序运行过程中,有两个环节涉及到出题操作,一是屏幕初始化时,另一个是点击出题按钮时。这里定义一个出题过程,分别在两个事件处理程序中调用该过程,提高了代码的复用性(复用:代码被重复利用)。

2、设置按钮组件的启用属性,来限定用户的行为,从而实现对程序的控制。

七、课后作业

1、思考;能否用组件的属性值替代全局变量“目标值”?

2、下列两种代码的运行结果相同,你更喜欢哪一种书写风格?为什么?

上图是确定按钮的点击事件处理程序——一段完整的代码

上图中定义了三个过程,并在确定按钮的点击事件处理程序中调用了三个过程。

(0)

相关推荐