标签:odi 鼠标 成就感 拷贝 和我 模块 这不 限制 输入
经过上一讲的突击训练,我们从门外汉开始走向编程的深坑,我们今天还要对上一讲的游戏进行加强。
上一个游戏还能演变成什么游戏呢?
我其实知道你们想到的是老hu机什么的,确实,上一个游戏改改可以变成老hu机,但是我们这不是要教小朋友吗,怎么可以学做老hu机?
大于、等于、小于的比较,是不是和剪刀石头布的游戏很像呢?我们要学点健康的东西。
好了,不会话了,我们开始:
首先,因为一共只有3样东西,剪刀石头布,小猫从当中选一个出来,那么随机范围只有从1-3,我们可以用1代表剪刀,2代表石头,3代表布,如果小猫随机选到了2,那就是说明小猫选了剪刀,同理玩家的选择也是这样。
然后就还是比较双方的数字,一共会有多少情况呢?
1-1,1-2,1-3
2-2,2-1,2-3
3-1,3-2,3-3
一共比较9种情况,再给出结果,
最后我们再循环一下,就可以完成这个游戏。
那我们就先动手试一试看:
1、我们先让小猫给个提示,说明一下数字代表什么;
2、然后新建一个变量,让小猫随机选择的这个数字存入变量中,准备作为比较对象,同时也要让玩家有一个变量,也放入输入的数字进行比较:
然后准备给小猫的变量充值,当然我们程序员都是叫赋值,其实都是一样:
然后再放入上节课我们学的随机模块:
这样小猫就会在1-3中随机选一个数字,对应着也就是剪刀石头布中的一个。
然后再给玩家变量充值,不,是赋值:
看到侦测模块里面的椭圆形的模块了吗,是不是和变量的椭圆形很像?
它就是玩家在输入框中回答之后的内容存储变量,也就是说其实系统在玩家输入数字的时候变量已经建立好了,不过我们为了让程序更有条理看得更清楚,所以再加入了一个“玩家选择的数”变量,那么,我们只要将“回答”这个变量赋值给“玩家选择的数”变量,就可以了:
好了,现在双方都已经选择好了,要开始进行上述的九种情况的比较,这个我们在上节课中也已经讲过,于是就要用经典的“如果……那么……”模块:
但是上节课这里是比较数字大小,那这个石头剪刀布我们怎么比较呢?比小大不可以了啊?
这里我们就要用到新的姿势点:
这是“数字和逻辑运算”功能里面的三个功能模块,第一个是要同时满足两个条件,第二个是只要满足两个菱形内容中的一个,第三个是菱形框中的内容不成立。
这是我们程序员以后会经常接触到的逻辑关系,放在我们今天的游戏里,那么就是“小猫选择了1”且“玩家选择了1”,这个条件如果成立,就可以放在如果……那么中执行判断结果输出“打平了!”,具体怎么做呢?看下图:
将菱形框内放入带等号的菱形框,然后再放入变量:
上图做出来了我们第一个判断情况,那么就按这个方式,我们可以做出其余的八种情况,这里有一个小技巧,我们可以在黄色“如果……那么”模块上,单击鼠标右键,可以出现隐藏菜单:
“添加注释”就是对这一行代码进行批注,你可以选择试一试看,这个不多说;“删除”也很容易理解,这是我们常用的删除代码的方式,我们需要选择的是“复制”,点一下,哎我去,这个功能模块包括里面的模块都完整的拷贝了一份,这样我们就只要修改一下里面的内容就可以了:
修改如下:
看到了吗,我们把9种比较情况全部都通过代码写出来了,如果代码页面太长,我们可以滚动鼠标中间滚轮或是点击右下角的放大缩小按钮:
减号是缩小,等号是整理,加号是放大,都点点看可以了解一下。
这样代码我们基本都写完了,不过我们这样只能玩一次,为了可以不停玩下去,那么我们就需要用到上节课学习的循环模块,如果想玩有限次数,那么就用:
如果不限制,就用:
我们这里用玩5次来试一试,5次之后小猫和我们告别,游戏结束:
点击右下角的减号,缩小代码块,然后放入控制模块里面的重复执行有限次数代码,循环5次后,小猫和我们说拜拜然后全部结束:
游戏已经编写完成,我们把程序跑起来看看:
我先输入个1,点一下蓝色的勾:
哎呀开场就输了,再多跑几次看看有没有错误,程序员叫bug。一定要反复跑几次,仔细检查代码有没有问题。
跑完5次后,小猫和我们告辞,游戏结束。
是不是很快就能写出很酷的游戏了?
就问你有没有成就感?
嗯,有希望,有前途,我们下节课暂时就不继续学代码,学习一点Scratch的舞台知识,这个也是非常有趣的内容,我们下回见。
Scratch零基础魔法编程(一)为什么你要学Scratch儿童编程
Scratch零基础魔法编程(二)来不及解释了,马上开始编程游戏
Scratch零基础魔法编程(三)剪刀石头布
Scratch零基础魔法编程(四)舞台区详解
Scratch零基础魔法编程(五)角色详解
Scratch零基础魔法编程(六)用“角色”与“舞台”的组合做个小动画
Scratch零基础魔法编程(七)“触碰”基础
Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?
Scratch零基础魔法编程(八)声音模块详解
标签:odi 鼠标 成就感 拷贝 和我 模块 这不 限制 输入
原文地址:https://www.cnblogs.com/scratch3/p/10920336.html