初级篇——猜骰子

【疑惑篇】

点击绿旗按钮,开始摇骰盅,同时播放摇动的声音。请玩家猜里面的骰子是几点(1-6),判断玩具是否猜对,说明结果。

骰盅、骰子和声音可以通过搜索引擎搜索下载,或者自己画出来。

视频演示open in new window

亲自操作open in new window

想一想: 如何将猜数字改为猜大小(1-3为小,4-6为大)。

视频演示open in new window

亲自操作open in new window

【线索篇】

案例分析

它们发生的场景是什么?

默认的白色背景

每个场景中有哪些角色?

每个场景中的每个角色在做什么?

  1. 点击绿旗按钮,骰盅左右摇摆,并播放摇骰子声音
  2. 询问玩家骰子的点数是多少
  3. 将骰盅切换为一个随机的骰子
  4. 判断用户是否回答正确,如果回答正确,那么说“猜对了”,否则说“猜错了”。

积木提示

当绿旗被点击

右转(15)度

左转(15)度

说(你好!)(2)秒

换成([造型1])造型

将大小设为(100)

造型[编号]

播放声音([喵])

等待(1)秒

重复执行(10)次

如果<>那么

如果<>那么否则

([舞台])的[背景编号]

询问(你叫什么名字?)并等待

回答

在(1)和(10)之间取随机数

等于

大于

小于

注意事项

  1. 骰盅和骰子是不同角色,还是不同造型。
  2. 利用改变造型编号参数来切换造型。
  3. 造型编号可以代表骰子点数

【解决篇】

这个案例相信很多人都有玩过,猜骰子的点数和大小。接下来,就来看看要如何实现它。

这个案例中用的就是默认的白色背景,不需要调整。接下来,思考一下角色有哪些?你可以看见在案例中有骰盅和不同的骰子,他们是一个角色的不同造型?还是不同的角色?

这个案例中的情况就和动物变变变中类似,虽然你看见了骰盅和不同的骰子,但是它们并没有同时出现。最简单的方式就是将它们作为一个角色的不同造型来使用。

现在就需要将这些造型图片上传上去。同样的,你可以在网上搜索图片,也可以加入我的知识星球下载图片和声音素材。

在这里我先提前给你一个小思考题,每个造型的顺序,对之后的程序控制会不会有影响?

除了上传完图片后,还需要把游戏时播放的摇骰子声音也上传上去。

接下来,就开始通过指令积木完成这个游戏。

1.点击绿旗按钮,骰盅左右摇摆,并播放摇骰子声音

第一步很简单,点击绿旗按钮后先初始化角色。在这里因为我使用的图片大小不一样,所以我需要选择骰盅造型后,调整好角色的大小。

接着,就开始摇骰子了。摇的过程会播放声音,所以使用播放声音([喵])积木。如何摇呢?观察一下是不是让角色左右调整方向就可以了。因为指令执行的很快,所以你需要像切换造型一样,在每次修改方向后,等待一定时间。它左右摇摆不止一次,所以使用重复执行(10)次积木让它重复调整方向。

现在,我再问你另外一个思考题,应该先播放声音还是先调整方向?为什么?时刻记住,程序是按照顺序执行的。

2.询问玩家骰子的点数是多少

这一步,需要你的游戏和玩家进行交互了,你要询问玩家骰盅中骰子的点数是多少,让玩家输入答案。这里就需要使用侦测分类中的询问(你叫什么名字?)并等待积木。

这个积木可以让角色像使用说话积木一样问玩家一个问题,同时舞台下方还会出现一个输入框,可以让玩家输入答案。执行该积木后,程序会停止往下运行,直到玩家输入完答案,点击输入框右侧的✔️或者按回车键后,才会继续执行。

现在就可以使用询问(你叫什么名字?)并等待积木,参数就是需要询问的问题,记得要让玩家理解你想让他输入什么。

3.将骰盅切换为一个随机的骰子

这一步是这个游戏的难点之一。

用户已经输入完答案,现在我们就需要展示一个骰子出来,看看用户猜的是否正确。为了保证游戏公平,你展示出来的点数应该是从1~6中随机抽取的。是不是又要用到在(1)和(10)之间取随机数积木,参数就是1和6。

现在你需要把获得的随机数所代表的骰子造型展示出来。例如,随机数是1,就展示1点的骰子造型,随机数是6,就展示6点的骰子造型。如何操作?

切换造型用什么积木?是不是可以用换成([造型1])造型积木。这个积木的参数可以选择什么?是不是可以选择造型编号和名称。而造型编号又是从1开始递增的,是不是正好对应着骰子的点数。

所以回到前面的问题,当你在上传完造型后,可以按照骰子的点数来排列造型顺序。这时你只需要将在(1)和(10)之间取随机数积木作为参数,放入到换成([造型1])造型积木中,角色就会切换为对应点数的造型了。

因为我使用的骰子造型比较大,所以还需要修改一下它的大小。

4.判断用户是否回答正确,如果回答正确,那么说“猜对了”,否则说“猜错了”。

最后一步,现在需要判断用户回答的正不正确。首先,如何获取用户输入的答案?这里需要使用回答积木。

在使用询问(你叫什么名字?)并等待积木时,用户输入完成后,Scratch就会将用户输入的答案存入回答积木中。

它和在(1)和(10)之间取随机数积木一样,是个椭圆形参数积木,点击时会有一个返回值,返回值就是用户输入的答案。

有了答案,你现在就要开始做判断了。如果答对了,做一件事,否则做另一件事。是不是使用如果<>那么否则积木。怎么比较用户是否答对?是不是用等于积木判断用户的答案和我们的随机数是否相同。刚刚的随机数是多少?是不是就是现在显示的骰子的造型编号。

最后使用说(你好!)(2)秒积木让它们说话就行。

猜骰子的点数就做完了,现在如果你要做的是猜骰子的大小应该怎么办?在这里我将点数分成1~3为小,4~6为大,用户只用输入大或者小。

另一个难点来了,获得了用户输入的大或者小后,怎么判定他是猜对还是猜错。

你可以动手先将不同的情况列出来。

用户输入骰子点数是否猜对
1
2
3
4
5
6
1
2
3
4
5
6

现在就可以来找一下,用户猜对的情况有哪些。是不是用户输入小,并且骰子的点数小于4的时候。

用户输入小可以这样表示。

骰子的点数小于4可以这样表示。

是不是还剩下一个并且,这就要使用运算分类中的逻辑运算符积木。

当它的左右两边同时为真(true)时,它就返回真(true)。其中只要有一边为假(false),它就会返回假(false)。

true 与 true = true

true 与 false = false

false 与 true = false

false 与 false = false

现在就将前面的两种情况放入积木的左右两边。

如果用户输入小,并且骰子的点数小于4,那么就说“猜对了”。

如果用户输入的是大呢?是不是用户输入大,并且骰子的点数大于3。

前面是猜对的情况,剩下还有猜错的情况。

如果用户输入小,并且骰子的点数大于3,那么就说“猜错了”。

如果用户输入大,并且骰子的点数小于4,那么也说“猜错了”。

上面分别使用了4个如果<>那么积木来进行比较。你可以再想一想,能不能将它们合并起来,只使用一个如果<>那么否则积木进行判断?

是不是上面用户猜对的两种情况,只要满足任意一个,用户就算猜对了。

这时判断就变成了,如果用户输入小,并且骰子的点数小于4,或者用户输入大,并且骰子的点数大于3,那么就说“猜对了”,否则就说“猜错了”。

这里的或者如何比较?这就要使用运算分类中的另一个逻辑运算符积木。

当它的左右两边任意一边为真(true)时,它就返回真(true)。只有两边同时为假(false),它才会返回假(false)。

true 与 true = true

true 与 false = true

false 与 true = true

false 与 false = false

前面的四种情况就可以合并成下面这样。

如果你是第一次学习与、或运算,可能会有点看不懂。需要你先去理解与、或的逻辑运算规则,然后再带入上面的情形进行演算。

完成了猜骰子,你还可以继续修改一下程序,试一试能不能让用户每次都猜对或者每次都猜错,这就是你在网上玩一些抽奖程序时候的作弊方式了。

想看更多学习案例,欢迎点击查看《Scratch 3学习手册》open in new window

想要获取所有案例源码和素材,以及获得我对你在学习中所遇问题的一对一解答,欢迎加入石头解忧杂货店

Last Updated:
Contributors: lanheixingkong