Scratch(二)来不及解释了,马上开始编程游戏
来来来,上一期你们都经过了”HelloWorld”神咒的加持,已入编程大门,我们今天就开始一边做游戏,一边熟悉Scratch。
对,你没跑错片场,坐好要发车了。
这个游戏是一个猜数字的游戏,舞台上的那只小猫会自己心里想一个数字,然后你来猜,猜错了小猫会给你提示,看看你运气怎么样?
第一步,我们要先给这个小猫想个数字,那就6吧,这是个受人喜欢的数字。
第二步,我们要输入一个数字,然后才好和小猫的数字比较,那么怎么输入呢?看这里:
看到蓝色功能积木中的“询问_____并等待”了吗?直接拖到右边代码区,然后点击What’s your name 删除,输入“请问你猜我想的是哪个数?”
点击一下这个积木的蓝色框,哎~小猫说话了:
下面还多了一个闪烁光标的输入框,这里就是玩家输入数字的地方。
你现在就可以输入,但是没什么用,因为还缺一个你输入的数字和小猫想的数字的比较动作以及比较结果的现实,那我们继续。
第三步,将你输入的数字和小猫的数字做比较,于是我们就要使用到编程里面非常常用的一个比较功能,其实很简单,就是我们小学学习的比大小:
在绿色的功能模块中,找到这三个菱形积木,因为我们就要用这三个情况来比较一下两个数字。第一个空我们可以填写开始给小猫设置的数字“6”,第二个空就是我们输入的数字,在输入的数字的时候,这个数字被放入一个叫“变量”的容器里了,这个变量就是你输入的数字,那么这个变量在哪里呢?
在刚刚的输入功能模块下面有一个椭圆小积木叫“答案”,这个就是你输入的数字的变量,现在这个“回答”积木就表示了你的数字,于是我们可以把它放入到上面三个比较积木中去,看好:
这个积木是可以放到另一个积木的输入框中的。
第三步:进行条件判断比较,这是编程中几乎最重要的功能,我们来看看:
在黄色功能积木块中找到“如果___那么”这个夹子积木,拖到代码区,看到中间那个菱形空缺了吗?对,就是放之前的绿色比较积木的地方,那么我们来解释一下:
1、先输入“回答”;2,如果“回答”比“6”大,那么……
那么干嘛呢?那么小猫就说一句“太大了。”
根据我们第一章的知识,我们可以很快找到小猫说话的积木:
注意,黄色的“如果…那么”积木中,只有菱形判断是成立的,才会执行夹子里面的积木;如果积木中的判断不成立,则会绕过夹子中的功能积木块,将流程往下走。
比如现在这个代码如果运行,你输入的数字比6大,那么就会执行夹子里的代码,小猫就会说“太大了!”,如果输入的数比6小,那么就不会执行紫色积木。
好了,根据上面的这个方法,我们还要判断另外两个情况:
如果第一个判断不成立,那么跳过第一个夹子进入第二个判断,如果第二个也不成立,就会进入第三个判断,我们先让程序跑起来看看——点击最上面的蓝色积木,并让其整体发光:
看到没,代码发光了!说明正在执行,我们看舞台区,要输入数字了:
我输入了一个5,回车或是点右边蓝色的勾:
2秒之后,代码四周黄色光芒熄灭,代码跑完了。
但是我们不能每次玩都要点一次啊,于是,我们可以用到另一个最重要的循环功能:
重复执行的功能模块也是夹子状,就是说要重复执行夹子里的代码块。第二个重复执行积木有一个输入次数,就是循环多少次,而下面的那个没有输入的就是永远不停循环。
注意观察:
有次数选择的夹子底部有一个突出块,就是说执行次数结束后还有代码要执行,而没有次数选择的夹子底部是光滑的,说明下面不再有代码。
我们先选无限循环的夹子,然后将左边的代码块全部放夹子里:
顶部还有一个缺口,那就加上第一章我们学习的开始模块:
好了,去舞台区点击绿旗帜开始玩游戏了,是不是一直循环了啊?
但是你一定会说,这有什么好玩的啊,这个小猫想的数字是我设定的啊,这还玩什么?
好了,一个游戏的最精华的部分来了——让小猫来想一个数字,这次我也不知道是什么,只能根据小猫给的提示来猜,这样就灰常好玩了。
那么小猫怎么自己想数字呢?
这里我们就要用到随机模块:
看到上图下面的那个椭圆积木没?
这就是说,让这个椭圆积木从1到10里面自己选一个数,是哪个我也不知道。
有了这个神奇的功能积木,我们就可以改造刚刚写的代码了:
在橙色功能块中点击“新建变量”,弹出一个框,我们要给变量命名,这个是小猫想的数字,我们就起名叫“小猫想的数字”,然后点确定。
确定后就会发现橙色积木出现了,并且舞台区也多了一个框:
因为这个数字是不能让我们一开始就知道的,所以我们把这个变量前面的勾取消掉,这样舞台去区的框也会消失:
然后我们看第二个橙色的功能模块:
哎,我们可以在这里给“小猫想的数字”这个变量设定为一个数,但是我们这次要让小猫自己选一个数,怎么办?对,就是用刚刚上面说到的随机积木。
还是用这种方式,把绿色的随机积木拖到橙色变量积木块中,这句代码的意思是:
将“小猫想的数字”设定为1到10里面的任何一个数字。
好,然后代码跑起来看看:
玩了几次下来,哎,发现怎么还是6呢?
自己看代码,是不是我们还有什么地方没改动?
原来,我们的比较模块里面,还是和6在比较,那么应该是和什么比较呢?对,要和变量“小猫想的数字”,于是我们修改这个代码:
从数据功能区,将变量“小猫想的数字”拖到判断模块中去:
一个好的游戏,有开始,也要有结束,当我们猜对了之后,就要用一个功能积木来停止代码,这个积木在:
上图下面有一个“停止全部”,将这个积木拖入到答对了的判断里:
这样,如果你猜对了后代码就全部停止,游戏结束,等待重新开始。
一个完整的游戏就成功了,简不简单?好不好玩?开不开心?惊不惊喜?
恭喜入坑,我们好戏在后头!
附加题:
如果游戏要求3次选出数字,3次没选出就输了,怎么调整代码?
Scratch零基础魔法编程(一)为什么你要学Scratch儿童编程
Scratch零基础魔法编程(二)来不及解释了,马上开始编程游戏
Scratch零基础魔法编程(三)剪刀石头布
Scratch零基础魔法编程(四)舞台区详解
Scratch零基础魔法编程(五)角色详解
Scratch零基础魔法编程(六)用“角色”与“舞台”的组合做个小动画
Scratch零基础魔法编程(七)“触碰”基础
Scratch零基础魔法编程(七)篇外.用小动画和触碰能做大型游戏?
Scratch零基础魔法编程(八)声音模块详解
Scratch(二)来不及解释了,马上开始编程游戏的更多相关文章
- (十二) 一起学 Unix 环境高级编程 (APUE) 之 进程间通信(IPC)
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- 二、基于事件的异步编程模式(EAP)
一.引言 在上一个专题中为大家介绍了.NET 1.0中提出来的异步编程模式--APM,虽然APM为我们实现异步编程提供了一定的支持,同时它也存在着一些明显的问题--不支持对异步操作的取消和没有提供对进 ...
- CodeCombat编程游戏
一. 介绍 官方网站:http://cn.codecombat.com/ 项目地址:https://github.com/codecombat/codecombat CodeCombat 是一个通过玩 ...
- Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介
Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 ...
- 异步编程(二)基于事件的异步编程模式 (EAP)
一.引言 在上一个专题中为大家介绍了.NET 1.0中提出来的异步编程模式——APM,虽然APM为我们实现异步编程提供了一定的支持,同时它也存在着一些明显的问题——不支持对异步操作的取消和没有提供对进 ...
- 【unix网络编程第三版】阅读笔记(二):套接字编程简介
unp第二章主要将了TCP和UDP的简介,这些在<TCP/IP详解>和<计算机网络>等书中有很多细致的讲解,可以参考本人的这篇博客[计算机网络 第五版]阅读笔记之五:运输层,这 ...
- Scratch 可能能帮你找到学习编程的初心
Scratch 是MIT 出品的一款少儿编程软件,基于Adobe Air开发,这个运行环境在如今已经显得有些过时,但只要这个软件有用,软件本身就不会过时. 编程的本质大致是调用计算机的指令编写一系列任 ...
- 3、二、c# 面向对像编程。类,结构、C# 数据类型(引用类型、值 类型、指针类型)、ref参数与out参数、方法的重载、静态类型与静态成员、继承与多态、委托与事件
一.类 定义类使用class关键字. <access specifier> class class_name { // member variables 成员变量 <access s ...
随机推荐
- CheatEngine查看PE header
先打开进程,炉石传说. 然后选择MemoryViewer 在MemoryViewer界面,Tools菜单,然后选择Dissect PE headers 然后查看mono.dll的信息 0x357A0是 ...
- vuejs2从入门到精通视频教程
https://www.cnblogs.com/web-666/p/8648607.html 一.基础部分 0.课件 1.介绍 2.vue实例 3.模板语法 4.计算属性和观察者 5.Class与St ...
- Nfs固定端口 nfs 端口公网映射
- 8款超好用的SVG编辑工具用起来
随着响应式网页的发展,对于内容呈现的要求也越来越高,尤其是图像.为了在各种设备上能实现自然伸缩或扩展而不影响图片质量,所以矢量图形(SVG)正变得越来越受欢迎. 大家都知道,在计算机图形学中,有两种主 ...
- 使用Dapper.Contrib
public T Query(string sql, object param) { using (IDbConnection dbConnection = Connection) { if (dbC ...
- tensorflow 如何看shape
https://blog.csdn.net/yinxingtianxia/article/details/78121941 输入: x= tf.truncated_normal([, , ], dty ...
- python接入微博第三方API之2接入用户登录和微博发布
python接入微博第三方API之2接入用户登录和微博发布 # coding=utf-8 import requests import json import MySQLdb from datetim ...
- python-learning-第二季-数据处理numpy
https://www.bjsxt.com/down/8468.html numpy-科学计算基础库 例子: import numpy as np #创建数组 a = np.arange() prin ...
- Eclipse安装中文简体语言包
原文地址:https://blog.csdn.net/qq_41101213/article/details/84405452 方法一:1. 下载中文语言包: 1.1 打开网址:http://www. ...
- 安卓 android studio 报错 All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com
这个问题是Android studio升级到3.0之后,运行的时候会提示gradle要升级到3.5版本才能编译.于是我把我的gradle升级到了 gradle-4.1-milestone-1 版本,是 ...