CH01_初识Scratch
CH01_初识Scratch本章目标
Scratch的安装和操作
Scratch指令积木的操作
Scratch角色、舞台、背景
基本指令积木
制作简单小游戏
Scratch概述
Scratch是麻省理工学院的“终身幼儿园团队”在2007年 [5] 发布的一种图形化编程工具,主要面对全球青少年开放,是图形化编程工具当中最广为人知的一种形式,所有人都可以在软件中创作自己的程序。截至到2021年仍在更新。
安装网页版编辑器
链接
线下编辑器
链接
主要操作窗口
1、舞台区:程序执行的地方,舞台默认情况下是在中间有一只小猫的角色。舞台区左上角是用于控制程序启动与终止的按钮。右上角是放大和程序界面布局的按钮。
Scratch舞台坐标系: Scratch舞台坐标系的大小为(-240,-180)到(240,180),面积共480*360大小。舞台中间为(0.0)。
在舞台下面可以选择不同的背景。
2、角色列表 :显示角色的位置、大小、方向、显示状态等信息。角色列表在舞台的下面,允许用户建立多个角色并分别控制。
选中的角色四周用蓝色的方框表示,点击指令区的造型,可以显示该角色的 ...
CH02_马戏团表演
CH02_马戏团表演本章目标
理解程序设计的控制流程
运用“移动”或旋转等动作指令的积木
能够通过按键事件来控制程序的执行
控制结构
顺序结构所有指令按顺序执行,即从“第一行”指令积木开始,由上而下按顺序执行,直到最后一个指令积木结束。
选择结构程序中,选择结构按照限定“条件”的判断结果而决定不同的执行流程。
语法:如果<条件>那么
如果<条件>成立,执行<那么>下一行指令积木。
如果<条件>不成立,执行<如果…那么>下一行指令积木。
多条件选择结构
循环结构程序中,循环结构会反复执行某一指令积木集,直到特定“条件”出现才停止执行。
1.无限循环结构
循环执行,永不停止
2.计次循环
循环N次,然后跳出循环结构
3.条件式循环
直到“条件成立”前都重复执行
项目1:快乐的小猫情景分析1.角色:小猫
2.场景:草地
3.动作:跑步、跳舞、翻跟斗等
问题分析1.绕操场跑步
通过键盘控制移动
2.跳舞
设定舞蹈动作
控制动作变化
3.翻跟斗
角色跟随鼠标移动
实现步骤1.新建项目、添加角色、 ...
CH03_运算和统计
CH03_运算和统计本章目标
了解Scratch中变量和链表在程序中的作用
使用变量、链表控制程序
使用运算符指令积木创作简单运算程序
使用侦测和判断创作游戏
变量概述变量(Variable)是一种内容不固定的数据项,数据内容会因程序的执行而变动。
在程序运行的过程中,将数值通过变量存储在计算机内存中,以便程序随时使用。
变量有变量名和变量值,如age(变量名)、20(变量值),变量名称支持中文和英文。
变量类型:布尔类型、字符串类型、数值类型。
使用变量的范围:
A.全局变量:适用于所有角色
B.局部变量:适用于当前角色
项目1:小猫出题情景分析1.角色:小猫
2.场景:教室
3.动作:加、减、乘、除运算,求和、求平均统计运算等
问题分析1.需要存储哪些数据?
2.如何接收用户的输入?
3.如何运算?
4.如何判断答案是否正确?
5.如何实现重复出题?
实现步骤1.新建变量和运算符
变量:
角色:
2.设置数的范围和答案
3.判断答案
4.重复出题
5.运行结果
链表概述链表是可以存放许多变量的数据的集合,其中的每个变量有一个唯一的标识。
使用1.链表的范围
A.全局 ...
CH04_神奇的画笔
CH04_神奇的画笔本章目标
利用画笔模块的指令积木制作程序
使用广播指令积木来控制程序
使用控制结构来设计程序
理解嵌套循环结构
画笔概述画笔分为各种型号,各种颜色。
每个角色都有一个默认的画笔。
画笔模块的指令积木:
项目1:爬虫画线情景分析1.角色:爬虫
2.场景:无
3.动作:绘制各种图形
问题分析1.如何控制角色画线
2.如何计算不同形状图像的画法?
3.规则图形和不规则图形画法有何不同?
实现步骤1.爬虫画线
通过键盘的上下左右键来控制爬虫的移动
前进时落笔,后退时抬笔。
项目2:绘制多变形
三角形
正方形
六边形
项目3:绘制旋转的正方形
绘制正方形: 重复执行四次“移动100步,向左旋转90(360/4)度”,使用循环结构
绘制12个正方形并旋转:顺时针或逆时针画,每画完一个正方形,向右(顺时针)或向左(逆时针)旋转30(360/12)度,每个正方形画笔的颜色发生改变,重复12次,使用嵌套循环结构
项目4:绘制风车绘制新角色
设置造型中心:在舞台上以舞台中心为原点
绘制思路:
顺时针旋转,绘制8个旗帜;
每画完一个旗帜,向右或向左旋转4 ...
CH05_音乐之声
CH05_音乐之声本章目标
使用声音模块的指令积木制作程序
使用克隆功能的指令积木控制程序
声音模块概述1.播放音频文件
2.弹奏乐器
3.控制音量及播放速度等
播放音频文件1.Scratch仅能识别两种格式:wav和mp3
2.声音模块相关指令
3.新建声音可以从本地文件夹导入,也可以从声音库中选择,还可以自己录制声音。
弹奏乐器1.弹奏鼓声:可以以指定的排数弹奏18种音色。
2.弹奏音符:可以弹奏范围0-127的音调,同时还能指定拍数,可以设置21种乐器。
项目1:舞曲-两只老虎
实现步骤1.准备角色、舞台背景
2.新建链表“节拍”、链表”音符”、变量“序号”
3.向链表中导入节拍和音符数据
4.添加“音乐”代码模块
5.编辑脚本实现舞蹈
6.编辑脚本实现音乐
7.完整脚本
项目2:舞曲-江南style
实现步骤1.准备角色、舞台背景
2.实现移动和切换造型
3.加入音乐
4.加入DIY伴奏音乐
可以用键盘上的按键模拟琴键来完成DIY音乐,比如,当按下键盘上的“a、s、d、f、h、j、k、l”分别弹奏音符“do re mi fa so la si”7个音节
5 ...
CH06_酷炫时钟
CH06_酷炫时钟本章目标
能够根据需求设计程序
能够选择合适的指令积木实现程序
熟练使用各模块常用的指令积木
情景分析角色表盘、时针、分针、秒针
场景无
动作时针、分针、秒针绕表盘中心点顺时针旋转。
问题分析1.四个角色如何设计
2.如何获取当前的事件
3.时针如何正确旋转
4.分针如何正确旋转
5.秒针如何正确旋转
脚本规划与流程设计流程
脚本
实现步骤绘制角色并设置图层1.单击“绘制新角色”按钮,绘制时针、分针、秒针角色,并分别设置角色的底部为造型中心。
2.单击“从本地文件上传角色”按钮,选择表盘角色。
3.将“时针”设置在最上层,“分针”下移一层,“秒针”下移两层,表盘下移三层。
侦测当前的秒数1.程序开始执行时侦测“时针”、“分针”、“秒针”的正确事件。
2.侦测的时间为计算机操作系统的时间,再按照时间开始旋转。
3.设置当前角色起始位置(0,0),秒向90度。
4.设置当前秒数:
秒针60秒一圈(360度),所以每一秒旋转6度。
计算当前时间秒针的位置。
5.秒针重复执行旋转
侦测当前的分钟1.分针60分钟(3600秒)旋转一圈,所以每1分钟旋转6度。
2. ...
CH07_迷宫闯关
CH07_迷宫闯关本章目标
能够根据需求设计程序
能够选择合适的指令积木实现程序
熟练使用各模块常用的指令积木
创设情境1.利用scratch制作一款迷宫游戏
2.游戏人物通过键盘的上、下、左、右键控制移动
3.如果人物碰到迷宫墙壁则会游戏失败
4.同时,如果碰到游戏中的巡逻兵也会失败
情景分析角色闯关者、巡逻兵
场景迷宫地图
动作闯关、移动、回到入口等
问题分析1.如何设计和绘制迷宫地图
2.人物如何接收键盘指令
3.如何判断碰到迷宫墙壁则闯关失败
4.如何判定游戏胜利
5.如何让巡逻兵角色开始“巡逻”
6.如何判断碰到巡逻兵则闯关失败
脚本规划与流程设计流程
脚本
实现步骤1.新建项目、创建角色
2.绘制新背景:迷宫地图
选择“绘制新背景”按钮,使用矩形框(黑色填充)绘制迷宫地图。
3.设计闯关者脚本
4.设计巡逻官脚本
课后作业功能扩展
1.闯关过程加入计时、计分功能
2.闯关者添加生命值属性
3.重新设定闯关成功的条件
4.优化巡逻者的功能(比如非固定路线行驶)
5.将迷宫改成多角色、多关卡的复杂游戏,功能可以根据自己的想法自行设计例如:
CH08_自动驾驶
CH08_自动驾驶本章目标
能够根据需求设计程序
能够选择合适的指令积木实现程序
熟练使用各模块常用的指令积木
创设情境1.利用scratch制作一款智能巡航汽车
2.智能小汽车通过雷达检测路标
3.如果碰到障碍,就自动转弯
情景分析角色智能小汽车
场景公路
动作行驶、停止、喇叭
问题分析1.如何绘制汽车雷达
2.如何绘制公路
3.如何检测障碍物
4.如何行驶、转弯、停止、按喇叭
实现步骤1.新建项目、创建角色
2.绘制公路
圆形或其它随意形
3.设计智能汽车脚本
课后作业
CH09_迭代器
CH09_迭代器
本章目标
掌握迭代器的定义与使用
迭代器前面章节中,已经对列表(list)、元组(tuple)、字典(dict)、集合(set)这些序列式容器做了详细的介绍。值得一提的是,这些序列式容器有一个共同的特性,它们都支持使用 for 循环遍历存储的元素,都是可迭代的,因此它们又有一个别称,即迭代器。
从字面来理解,迭代器指的就是支持迭代的容器,更确切的说,是支持迭代的容器类对象,这里的容器可以是列表、元组等这些 Python 提供的基础容器,也可以是自定义的容器类对象,只要该容器支持迭代即可。
如果要自定义实现一个迭代器,则类中必须实现如下 2 个方法:
_next_(self):返回容器的下一个元素。
_iter_(self):该方法返回一个迭代器(iterator)。
例如,下面程序自定义了一个简易的列表容器迭代器,支持迭代:
1234567891011121314151617181920212223class listDemo: def __init__(self): self.__date=[] self.__step = ...
CH07_函数和Lambda表达式
CH07_函数和Lambda表达式
本章目标
掌握函数的定义与调用
掌握值传递和引用传递的区别
掌握位置参数、关键字参数、默认参数的使用
掌握局部函数与闭包函数使用
掌握lambda表达式的使用
掌握内置函数eval()和exec()的使用
Python函数概述Python 中函数的应用非常广泛,前面章节中我们已经接触过多个函数,比如 input() 、print()、range()、len() 函数等等,这些都是 Python 的内置函数,可以直接使用。
除了可以直接使用的内置函数外,Python 还支持自定义函数,即将一段有规律的、可重复使用的代码定义成函数,从而达到一次编写、多次调用的目的。
其实,函数的本质就是一段有特定功能、可以重复使用的代码,这段代码已经被提前编写好了,并且为其起一个“好听”的名字。在后续编写程序过程中,如果需要同样的功能,直接通过起好的名字就可以调用这段代码。
下面演示了如何将我们自己实现的 len() 函数封装成一个函数:
1234567891011121314#自定义 len() 函数def my_len(str): length = 0 ...