今天给学习Scratch的朋友们介绍一个Scratch编程任务时思维套路:ADOPT法则。
大家可以放大来看。
ADOPT法则要点:
A:分析任务
B:拆解任务
O:列出选项
P:编程
T:测试运行和优化。
这里我们举一个例子来说明这个思路套路:
注:本题为第十届蓝桥杯大赛青少年创意编程 SCRATCH 初级组样题 编程题 第二题,难度系数2(本比赛难度共分10级)
ʕ•̫͡•ʔ❤ʕ•̫͡•ʔ 题目要求ʕ•̫͡•ʔ❤ʕ•̫͡•ʔ
准备工作:
导入背景库中的“bench with view”。
编程实现:
小猫从坐标点(-144,-81)出发向右行走,当走到长椅最右端时,转头向左行走回到起点,然后再转头向右,就这样重复循环地行走下去。
将程序保存到桌面,命名为“2.sb2”。
注意:
1. 点击绿旗,小猫从长椅左侧位置出发,在长椅上来回行走。
2. 角色应该是在行走(造型切换),而不是移动,且不能超出长椅范围。
评判标准:(共50分)
10 分: 能够设置出题目要求的舞台背景。
10 分: 小猫从长椅左侧出发。
10 分: 小猫在行走(造型切换),而不是移动。
10 分: 行走和转头的方向是一致的。
10 分: 行走到长椅右侧时,能够转头向左走,并走回起点,然后再次向右行走。
ʕ•̫͡•ʔ❤ʕ•̫͡•ʔ 解题思路•ʔ❤ʕ•̫͡•ʔ
本题考查同学们对循环、位置移动、方向变化等编程知识和技能的掌握。
如何按要求完成程序呢?首先大家一定要仔细读懂题意,特别是要实现什么?有什么注意事项?还有评判标准,这些每一条都要清楚。
这里我们按下面这样的思路模板思考:
-
审题,确定题目要求,即任务现状(限制)、任务目标(目标状态)、可利用材料和方法(操作选项)。
任务现状:小猫在长椅左端。
任务目标:让小猫在长椅上来回走动。
可利用材料和方法:移动、切换造型、转方向、循环等代码块。 -
拆解任务。
任务开始的时间(WHEN):小绿旗一点击。
任务进行的方式(HOW):重复进行,不停止。任务涉及到哪个角色(WHO):小猫。
任务步骤需要做什么(WHAT):总体要让小猫在长椅范围内来回走动。具体小步骤:小猫从长椅左端开始,一边走一边变换造型,走到长椅右端时,改变方向朝左,再一边走一边变换造型,走到长椅右端时,改变方向朝右。重复这一过程。 -
细化可利用材料和方法,选择最好的材料和方法,进行组装。
首先,要用到哪些材料和方法呢?
使用“列举法”,列出在拆解的小任务中,可能用到所有材料和方法。要结合题目整体要求中的任务现状和任务目标,又要结合每一个小任务的限制条件,进行分析。
A. 循环:“重复执行……次”、“重复执行”、“重复执行直到……”。
B. 移动:“移动……步”、“移到x……y……”、“移到……(角色)”、“在……秒内滑行到x……y……”、“在……秒内滑行到……(角色)”。
C. 切换造型:“换成……造型”、“下一个造型”。
D. 改变方向:“面向……方向”。
其次,选哪个好一点呢?
需要用到“排除法”。排除的实现,可以是直接推理判断,排除不合要求的,也可以使用“尝试法”。
A. 循环:
我们需要让小猫在长椅上一直来回走动,不能走出长椅,所以整体来讲,小猫的x坐标一直在一个范围变化,而y坐标不变。
因为有“一直”,所以肯定在最外面应该用“重复执行”。
而这个重复执行里,要做什么呢?应该让小猫慢慢移动,并同时变造型,所以我们可以使用“重复执行……次”或“重复执行直到……”,两个都可以。
B. 移动:
我们需要让小猫一边走一边换造型,还得改变方向,所以使用“移动……步”是可以的,而且最容易做。
当然,使用“移到x……y……”也行,不过需要用到更多变量的知识,稍微复杂一点。
“在……秒内滑行到x……y……”也行,它可以实现小猫移动时的动画效果,但是如果题目不要求,可以不用这个代码块,用“移动……步”就好了。
“移到……(角色)”、“在……秒内滑行到……(角色)”,没有其他角色,用不着。
C. 切换造型:
如果只是实现小猫走路动作,而且造型能够连起来形成一系列的动画,就不断切换“下一个造型”就可以了。
“换成……造型”这个代码块,适用于特别需要设置成一个造型的时候。
D. 改变方向:这个没选择,就用“面向……方向”。
接着,把选好的材料和方法组装起来。
这时有一些数值到底是多少,也需要用“尝试法”。比如不超出长椅范围的坐标,到底多少合格?
组装的时候,注意动作的顺序,按先后顺序执行的,从上到下拼接代码,同时执行的,用“并行”结构。
这里因为移动和切换造型都是不带“时间词”,不占用太长时间的代码块,所以可以写在一个循环里按上下顺序执行,也可以使用并行结构,都可以。
关于“时间词”的问题,可以参考:【Debug Scratch】老师,这声音为什么停不下来呢?
4. 测试、运行、优化。
如果发现bug,不要着急,按照下面的步骤:
A. 仔细观察bug、分析可能出现原因;
B. 定位到bug可能出现的代码;
C. 修改这些代码;
D. 测试运行。
C和D可能会重复很多次,这也是在用“尝试法”。
大家按这个思路,动手编写程序试试吧!
如果你编写完成了,想知道写得对不对、好不好,可以发送代码截图给公众号后台哦!