第199篇文章


老丁的课程

在很多教程里面,大家都喜欢把模块拿出来一个个讲述其功能。

这样做的好处是,可以把每个代码模块的功能讲的很清楚。但最最讨厌的问题也随之而来……

举个例子,当你学习英语的时候,是语法好学,还是词汇好学?

肯定是语法啊……因为语法基本上就是语言规则,规则是有限的。并且,规则在很多情况下是可以根据自己的要求重新组合的。而词汇呢?没完没了……所以,英语水平的高低,从某种意义上来说,词汇量本身就是一个很好的参考标准。

如果学习英语的时候,光背词汇,第一,记不住,第二,用不来,那么面对浩瀚的辞海……怎么能学会呢?

所以,我们要从理解的角度来学习这些东西。

再所以,我们还是从一个编程流程的方法,作为实际操作的开始吧!

本课程将把很多应用和知识点融入课程内来讲述哦!

注定,这不是一套说明书式的教程


别看Scratch有那么多模块的种类,其实归根结底,只有2种。

第一种都长这个样子,就像一个个卡片。它们负责一个程序中的具体流程执行或者执行判断、循环。

不管它们是什么颜色,其实我们可以理解为,它们都属于同类~都可以堆在一块。

先不管这些代码是干嘛的,反正你只要把这些家伙随意的堆在一起,就可以做出一个程序。

而程序就会根据由上到下的顺序,开始执行。

第二种,就是椭圆的和六边形的。

这些我们可以认为他们是一种“条件”代码。

专管数据条件、逻辑条件(布尔运算)、处理数据等等,反正千变万化,可以有很多很多种,十分考验运用能力。它们给流程模块和输出模块,带来了各种各样的“条件要求”。当然,这些条件都可以由你自己来设置。


与EV3不同,Scratch的编程工具,开发的更为“详细”。

比如,关于启动的流程模块,也就是“事件”下面所对应的各种代码块。

这些模块一般都是用来启动某一套程序的。你可以设定各种各样的启动条件。

其他的都很好理解,比如当小旗帜被点击,当空格(也就是电脑键盘上的空格)被点击,它们都是用来触发程序启动的“条件”。

诶,对了,这里我们看到了几个关键词

角色、背景、广播,它们是什么?请看下面这个全景图。

跟Mindstorms相比,Scratch多了一个“角色”的感念。同时也多了一个“背景”的概念。

简单说,这两种东西,都是“对象”

你编程对谁编?

当然是对“对象”来编程啦。

对象可以是“角色”,也可以是“背景”。区别是,角色可以移动来移动去,而背景就是整个背景图案啦。

点击上图右下角的两个按钮,大家可以自己添加角色和背景。这个很简单,没什么特别的地方,尝试一下马上就明白了。

当你需要对一个添加完的角色或者背景进行编程或者修改的时候,就要去选中对应的那个对象。

然后你就可以根据上图做这些事情。

了解了上面这些内容后,大家就明白了。

在Scratch里面,我们的编程可以明确的针对每一个被添加上的角色和背景来进行操作!

简单说,就是,让谁干嘛就干嘛。在一个程序里,每个对象的分工都可能是不同的,而我们,只要明确的告诉每个对象,做些什么,就ok啦!


而你可以看到,上文说到的这两类代码都是配合着使用的。

比如,首先,我们在程序的一开始,需要放一个启动模块。(什么操作触发程序启动)

我们当然,可以很简单的放上另一个卡片,来控制这只Scratch猫。这只需要放上一个代码即可。可以手动输入半圆内的数字,来控制一下这只猫。

但这毕竟是手动输入呀,程序不是应该可以根据一些情况自己计算距离的么?

那么我们稍微提一个复杂一点的要求好了,这样比较容易帮助小朋友理解问题。

要求:当绿色旗帜被按下后,让小猫,以再次按下鼠标之间的时间为条件,移动到坐标(100,0)的位置。

问题其实也挺简单的。我们可以看得出来,最终呈现的效果一定是间隔时间越短,猫移动的越快,而间隔时间越长,猫移动的越慢。对么?

这个时候,我们就需要使用到这些“数据条件”代码的配合啦。

首先,在程序一开始,把我们需要用到的计时器和猫的位置归零。

这是一个习惯问题,在我们使用任何数据模块的时候,程序一开始,尽量要养成归零或者完成初始值设置的习惯。这样方便我们日后检查一些程序的问题,同时也容易帮助我们找到问题,这个在以后的课程中,我们会经常提到。

第二步,把题目中要求的两个动作给放上去。

1、等待鼠标点击

2、把猫移动位置给设定好

我们可以看到上图的两个位置,是可以放上两种形状的代码的!

这种形状,我们叫做“布尔运算”代码。不作过多的解释了,大家简单理解为,这就是一种逻辑判断就可以了。

逻辑嘛,就是“是”或者“不是”;“包含”或者“不包含”;“成立”或者“不成立”……

反正就是二选其一,单选的条件。它本身也是一种数值,不符合逻辑的时候,它的数值就是0;而符合逻辑的时候,它的数值就是1。

所以它也可以直接当做是数据来使用,只是它的数据变化,只有0和1两种。

而上图这些,就是“数据运算”代码。它们的可能性就多咯。你可以运算,加减乘除,甚至更高级的数学运算。它们最终代表了各种数值。

我们分别把题目要求的两种数据,拖动到相应的“代码运算”位置上,这个程序就完成啦!

是不是很简单,动手试试看吧!

当然,理解了这些内容后,自己可以作一些各种各样的小尝试。

学起来不难,理解也不难,但熟悉,还是需要一些时间滴!

【Scratch】编程?一节课就教会你!其实我们不用一个个学习如何使用代码。的更多相关文章

  1. centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课

    centos   shell编程6一些工作中实践脚本   nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志  直接送给bc做计算  gzip  innobacku ...

  2. centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课

    centos shell编程5  LANMP一键安装脚本 lamp  sed  lnmp  变量和字符串比较不能用-eq  cat > /usr/local/apache2/htdocs/ind ...

  3. centos shell编程3【告警系统】 没有服务器端和客户端的概念 main.sh mon.conf load.sh 502.sh mail.php mail.sh disk.sh 第三十七节课

    centos shell编程3[告警系统]  没有服务器端和客户端的概念 main.sh mon.conf load.sh 502.sh mail.php mail.sh  disk.sh  第三十七 ...

  4. centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课

    centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   ...

  5. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  6. 跟我一起学编程—《Scratch编程》第24课:幸运大转盘

    同学你好,欢迎来到<跟我一起学编程>,我是包老师.这是<Scratch3.0编程>课程的第24课,我这节课教你做一个抽奖游戏:幸运大转盘. 学习目标: 1. 能够熟练使用造型工 ...

  7. 跟我一起学编程—《Scratch编程》第22课:颠弹力球

    1. 能够熟练绘制角色和背景造型 2. 能够熟练控制角色角度.速度等 3. 能够熟练使用变量 4. 能够熟练使用循环.选择等指令控制程序 任务描述: 1. 绘制弹力小球.托板角色,背景造型. 2. 游 ...

  8. 跟我一起学编程—《Scratch编程》第21课:打地鼠

    能够熟练创建并使用变量 能够熟练使用“广播”和侦测指令 能够熟练绘制角色和背景造型 能够熟练使用循环.选择等程序指令 任务描述: 绘制有6个地洞的背景:绘制锤子的两个造型:绘制地鼠的造型. 游戏开始后 ...

  9. 少儿编程|Scratch编程教程系列合集,总有一款适合你

    如果觉得资源不错,友情转发,贵在分享!!! 少儿编程Scratch: 少儿编程Scratch第一讲:Scratch完美的初体验少儿编程Scratch第二讲:奇妙的接球小游戏少儿编程Scratch第三讲 ...

随机推荐

  1. IdentityServer4入门四:应用Implicit模式保护网站(下)

    为认证服务端增加数据库支持 我计划使用一个名为Admin的表,放在一个已有的数据库里.所以我需要定义Admin类和在配置里预先加上数据库连接 新增类:Admin.cs public class Adm ...

  2. TCP和UDP并实现socket的简单通信

    http://www.cnblogs.com/IPrograming/archive/2012/10/15/CSharp_Socket_4.html http://www.cnblogs.com/do ...

  3. 2018-2019-2 《网络对抗技术》Exp8 Web基础 Week11-12 20165233

    Exp8 Web基础 目录 一.基础问题 二.实验步骤 实验点一:Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. 实验 ...

  4. jQuery之编写插件

    一.学习插件编写背景 作为一名前端人员,应该注重前端复用性及组件化,更应该考虑前端的性能优化,做到代码简洁有序,不冗余.特别是在大型团队中,如果一个团队中存在多个功能相似的组件,举个栗子,拿分页组件举 ...

  5. OpenJudge计算概论-成绩判断

    /*========================================================= 成绩判断 总时间限制: 1000ms 内存限制: 6000kB 描述 输入一个0 ...

  6. gis空间分析案例_坐标文件高斯投影变换地理处理工具

    gis空间分析案例_坐标文件投影变换地理处理工具 商务科技合作:向日葵,135—4855__4328,xiexiaokui#qq.com 功能: 对文件进行投影变换 特点: 1. 地理处理工具,可以与 ...

  7. JMeter学习-参数化

    JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户 ...

  8. Vuex 通俗版教程告诉你Vuex怎么用

    写在文前: 最近一直在用vue开发项目,写来写去就是那么些方法,对于简单的项目一些常用的vue方法足以解决,但是涉及到页面状态,权限判断等一些复杂的传值,vuex是必须的.对于vuex也运用一段时间, ...

  9. iOS12 中的后台下载与上传

    严格意义上来说,iOS并不能像Android一样,真的在后台开启一个下载Service,一直下载.但是它可以进行在系统允许范围内的后台上传和下载. 当使用 NSURLSessionConfigurat ...

  10. The magic method __set() must have public visibility and cannot be static in

    魔术方法 __set 用private 封装后出现问题 private function __set(){} 就是这个格式 10 错误信息就是这个:The magic method __set() m ...