欢迎光临散文网 会员登陆 & 注册

Scratch与数学的整合15

2023-07-14 17:10 作者:AI真有趣  | 我要投稿

                        第15课        数字扫雷挑战

一、课程回顾

        猜数字是你向对方发起挑战,让对方给你提供随机数的范围,你猜对方心中想要说的数字。你回答的数大于对方想说的数字,对方就告诉你:“猜大了”。反之同理。当然这两种都是失败,只有猜对才算成功。

        理论上来讲,由于随机数的范围是有限的,因此猜数字游戏获胜属于随机事件。但就是为了增强游戏的趣味性,Scratch总是故意让你猜不中。生活中也有类似的东西,例如你买了彩票总是中不了奖,和Scrarch猜数字的道理是一样的。

二、知识储备

        1、猜数字是一次性你问我答的游戏,错一次就会结束游戏,这也是猜数字的难点所在。那我们能否换一种玩法,在不影响趣味性的条件下,给我们更多次机会呢?请大家交流一下并告诉我。大家都一致认为是数字扫雷,确实是,也是最近网上非常火的游戏,大家聚会时都可以玩。

        2、那规则呢?:出题者给其他人一个随机数,让每个人轮流猜,当第一个人猜了一个数后,如果猜小了,出题者会说:“猜小了。”并对随机数作出调整:最大值调到刚才这个数的前一个数,以此类推,等到该区间内有且只剩1个数时,他必输无疑。另外规定所采的数必须为正整数,通常不报最小最大值本身。(图1所示)注意:“碰到雷”是输,不是赢。

随机数的调整过程


三、流程图

游戏制作流程

        首先程序开始。然后确定随机数范围,此时程序会将你“扫”的数字设定在该数的随机数范围内,并通过说话告诉你:“在××与××之间输入数字”,你输入某个数字,若程序发现你回答的数不在询问的范围内,就会导致死循环,即每一秒都在问你这个问题,只有在这个范围程序才会继续执行,接下来判断你输入的谜底是不是猜小了,如果猜小了,接下来会将最小值加1继续问你,否则会将最大值减1继续问你,就如此重复执行,一直到该区间内只剩谜底那一个数,此时你输入了这个谜底后,程序结束。


四、变量信息

        范围内上限、范围内下限、炸弹(小提示:测试编程是否成功实现时,可以隐藏舞台区显示的变量;也可以把范围内上下限改成最大最小数)

五、代码示例

        我们以1——100的随机数为例,来看一下代码吧。

        (0)——(3):新建“范围内下限”变量并设为最小值1,“范围内上限”设为最大值100,再拿出随机数积木,最小值放前面最大值放后面,作为变量“炸弹”的输入值。

绿旗被点击    (0)

将范围内下限设为1    (1)

将范围内上限设为100    (2)

将炸弹设为范围内下限范围内上限之间取随机数    (3)

        (4)——(5):开始让角色一直让你猜谜底,直到失败。由于次数没有确定性,∴用重复执行。重复整个程序后面的所有部分。

重复执行    (4)

询问连接连接连接连接猜一个数(范围内下限——范围内上限)    (5)

        (6):根据规则,不能回答“非法”的数字,∴要加入最外层的如果,对回答进行判断回答是否包含小数点,“回答”+另一个数=0,∵在Scratch中任何数加上空白的数都得0,还要判断回答是否在范围内上下限之内,在范围外就会造成死循环,在范围内才会继续执行。

如果回答包含·回答    =0回答范围内上限回答范围内下限不成立那么    (6)←外层的如果

        (7):中间的如果模块是判断回答是否小于“炸弹”,如果是小于,那么接下来执行(8)——(9),否则执行(11)——(12);若执行的是(8)——(9),人家告诉你猜小了,并将范围内下限加1;若执行的是(11)——(12),与(10)的否则连上并告诉你猜大了,并将范围内上限减1。

如果回答炸弹那么    (7)←中间的“如果”模块

说:“猜小了2秒    (8)

范围内下限设为回答+1    (9)

否则    (10)←外层的“否则”

说:“猜大了2秒    (11)

将范围内上限设为回答-1    (12)

否则    (13)←内层的“否则”

        (14)——(18)接下来就是该游戏怎么必输的了。(15)的“喵”也可以省略掉。

等待1秒    (14)

播放声音:    (15)

等待1秒    (16)

停止全部脚本    (17)

代码示例





        

Scratch与数学的整合15的评论 (共 条)

分享到微博请遵守国家法律