Scratch模拟实现“疯狂的赛车”比赛。有三辆小车,分别用红车、绿车、黄车表示。从起始点开始比赛,三辆小车分别做着不同的运动,最先到达终点的小车获胜。把屏幕左侧边缘设为起始点,把屏幕右侧边缘设为终点。
下面分别描述这三辆小车的运动情况:
(1)绿车起始速度是5m/s,加速度为0,做匀速直线运动。
(2)红车起始速度是3m/s,加速度为0. 1m/S2“,做匀加速直线运动。
(3)黄车起始速度是0,加速度为0.2m/S2,做匀加速直丝运动。
最后程序实现的效果如下
(1)比赛开始后,绿车领先,红车其次,黄车最后。
(2)红车超过绿车,领先比赛,绿车其次,黄车最后。
(3) 黄车反超,领先比赛,红车其次,绿车最后。
(4) 黄车赢得比赛的胜利。
思路分析:
虽然三辆小车的算法模型相同,但用到的具体算法是不同的,不同点就在于位移计算的方法不同。
(1)绿车做匀速直线运动,其位移计算公式为s=vt。
(2)红车和黄车做匀加速直线运动,其位移计算公式为s=vot+at2/2
(3)黄车的初始速度为0,其位移计算公式可简化为s=at2/2
scratch疯狂赛车编程实现步骤:
步骤一、新建角色,主要的角色有:绿车、红车、黄车。
步骤二、数据初始化,每个角色都创建3个私有变量:初始速度。时间t和位移s。红车和黄车还多了1个私有变量一加速度a。程序中还有一个全局变量“冠军”,用于存储比赛是否产生冠军的结果。在舞台背景程序中,创建全局变量“冠军”,并初始化为0。
红车代码
步骤三、小车向前行驶,直到到达终点。绿车做匀速直线运动,计算位移的方法。
黄车代码
步骤四、判断比赛的冠军。每个小车都添加一个“判断冠军”的方法。如果自己到达终点后,还未产生冠军,那么自己就是冠军。
绿车代码