咨询热线:

187 - 6397 - 2757

当前位置: 首页 > 新闻列表 > 编程竞赛题库

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程

    正文

    古诗词是同学们小学语文课程中必学的内容,大家小时候一定都阅读过像《唐诗三百首》《宋词三百首》这样的书籍,《静夜思》《登鹳雀楼》《水调歌头·明月几时有》这些著名的诗词几乎人人会背诵,今天呢,高铂峻同学就带来了一部有关古诗的Scratch作品,他将杜甫的《绝句· 迟日江山丽》这首唐诗与拼图游戏结合在了一起,通过拼字排序的游戏方式来加深对于这首古诗的记忆。那接下来我们就一起看看这个作品是如何在Scratch中实现的吧。

    点击绿旗

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图1)

    响应点击绿旗事件的角色有两个,汉字方块与背景。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图2)

    它们的代码都很简单,主要呢就是初始化游戏的一些设置和变量。

    汉字方块中设置了角色的大小与方格大小这个变量的值。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图3)

    每个方块的大小被设置为64,也就是其原始大小的64%,而方块大小这个变量的值被设置为65,比上面的大小多1,这个变量可不是用来设置角色大小的哦,它在后面主要用于方块间距离的判断。

    背景中,设置了游戏的封面,初始化了古诗内容、难度这些变量。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图4)

    古诗内容变量中存储的就是古诗按照正确顺序书写出来的所有文字,它在后面用来对比判断拼图结果是否正确。

    同时,游戏中还会循环播放着一段背景音乐。

    其实,响应点击绿旗事件的角色还有一个,就是它:

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图5)

    这个说明角色中并没有点击绿旗的代码,而是设置了“当背景换成封面”的事件:

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图6)

    通过背景的代码我们知道,点击绿旗之后,第一步就将游戏换成了封面的背景,所以说明角色中的当背景换成封面的事件也立即被触发了,这就是为什么说明角色间接的响应了点击绿旗的事件。

    老师在造型选项卡中看到说明角色一共有三个造型:

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图7)

    这三个造型在游戏中分别提供游戏的说明、正确答案提示和游戏成功的提示,后面两个造型的作用我们会在下面的代码中依次碰到。

    到这里,点击绿旗的代码就介绍完了,舞台区这时就出现了游戏的首页:

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图8)

    游戏说明的文字告诉我们点击屏幕进入游戏,选择难度并开始游戏,游戏中可以查看提示信息,按照古诗的顺序排列好,就成功完成游戏任务了。

    好,接下来我们就点击屏幕进入游戏吧。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图9)

    舞台区会切换成游戏的背景。

    当背景换成游戏

    当我们用鼠标点击屏幕之后,游戏就会进入拼图的界面。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图10)

    响应当背景换成游戏事件的角色一共有四个:

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图11)

    其中有两个按钮,一个是开始按钮,一个是帮助按钮,代码中通过移到语句将它们显示在固定的位置上。

    以帮助按钮的代码为例:

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图12)

    代码中,通过自制积木的方式给两个按钮添加了鼠标悬停放大的效果。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图13)

    背景中,通过显示变量语句让难度和正确方块数量这两个变量显示在屏幕上,游戏难度可以在点击start开始按钮之前通过滑动屏幕上的数字滑块进行改变。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图14)

    最后一个响应当背景换成游戏事件的角色是汉字方块,萌萌老师为什么要把这个角色放到最后说呢?因为它是拼图游戏中最核心最复杂的逻辑,也是实现拼图功能最关键的角色。

    当背景换成游戏后,汉字方块角色首先会进行初始化铺排。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图15)

    在铺排之前,代码先设置了两个变量的值,选中字编号变量表示小红点在拼图方块中的位置,也就是我们要移动的方块位置,唐诗《绝句· 迟日江山丽》一共有20个汉字,所以会在1和20之间随机取一个数并保存在变量中。正确方块数量变量中存储的就是古诗的所有汉字数目,也就是20。

    设置完两个变量后,代码就会进入初始化铺排的自制积木中。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图16)

    汉字方块角色明明只有一个,可是游戏中却出现了20个方块并组成了一首诗,读过萌萌老师文章的同学一定知道这里使用了克隆的方法,将一个角色克隆20次就得到了它的20个化身,每个化身再赋予它不同的造型就可以得到20个不同的汉字方块。

    那问题来了,如何排列摆放才能将这20个汉字方块组合成一首诗呢?不要告诉老师可以一个一个设置坐标,这种方法太笨拙了。其实我们可以通过数学计算得出每个方块摆放的位置,这就是上面这段代码所做的。

    为了让汉字方块整体摆放在屏幕的中间,我们需要对起始方块的位置进行计算,也就是说左上角第一个汉字方块的位置是非常重要的,初始化铺排代码块的第二、三行代码就是分别计算第一个汉字方块的X与Y坐标。

    为了更清楚的了解起始方块的坐标是如何计算的,萌萌老师在汉字方块上做了两个标记:

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图17)

    第一个标记是黄色的圆点,它表示汉字方块整体的中心点,也就是舞台区X、Y坐标为(0,0)的点。第二个标记是绿色的圆点,它表示古诗左上角第一个汉字方块的中心点。所以,我们的任务就是,计算出绿色圆点相对于黄色圆点的X、Y坐标值,很明显,在水平方向上绿色圆点与黄色圆点相距两个方格大小,而在垂直方向上绿色圆点与黄色圆点相距1.5个方格大小。

    有了上面的结论,再看代码是不是就很清晰了呢?

    第一个汉字方块的X坐标计算过程:古诗内容的字符数是20,用20÷8=2.5,然后将2.5这个数字向下取整,得到2,最后用方格大小×2,就是我们需要的X坐标值。在代码中,还给这个值减去了10,让汉字方块整体向左移动一点距离,给右边的start和help按钮留出显示的空间。

    Y坐标的计算也是类似的,而且更简单,直接用方格大小×1.5就可以了。同样,也减去10,让汉字方块整体稍稍上移一点。

    有了关键的X坐标与Y坐标值后,接下来我们要做的就是通过坐标值摆放所有的汉字方块。

    我们观察一下这首古诗,总共有20个汉字,一共显示为4行,那么每行就有5个汉字方块。我们已经有了第一个汉字方块的坐标,于是第二个汉字方块的坐标就是给第一个汉字方块的X坐标增加一个方格的大小,Y坐标不变,而第三个汉字方格的X坐标再增加一个方格的大小,以此类推,可以将第一行汉字方格排列出来。

    第二行的第一个汉字方格呢,它的X坐标与第一行第一个汉字方格的相同,而Y坐标增加了一个方格的大小,第二行第二个方格的X坐标增加一个方格的大小,Y坐标不变。按照这个原理我们就可以排列出第三行、第四行的所有方格了。

    所以,通过上面的分析过程,代码中需要两个重复执行,它们是嵌套的关系,第一个重复执行运行4次,每次会进行古诗水平一行的排列,第二个重复执行运行20÷4=5次,按顺序每次排列一行中的一个汉字方格。

    重复执行中还会不断的切换角色的造型与古诗编号变量的值,这样不同的克隆体就可以显示不同的汉字造型,并且存储不同的古诗编号值,这个值就对应它在古诗中的位置。最终,《绝句· 迟日江山丽》这首唐诗就会按照正确的顺序显示在屏幕上了。

    初始化铺排完成后,代码会发送选中字消失的广播,意思就是将选中的汉字方块隐藏并用红点角色代替。

    所有的方格克隆体都会接收到这个选中字消失的广播,但是进行替换的方格只有一个。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图18)

    OK,接下来,我们就要选择游戏难度并点击start按钮开始正式的拼图任务啦。

    重新开始

    点击start按钮后,它会发出重新开始的广播。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图19)

    接收这个广播的角色仍然是汉字方块角色,重新开始的意思就是将所有的汉字方块打乱,我们需要重新进行排列。

    同样的,所有的克隆体都会接收到这个广播。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图20)

    我们选择的游戏难度会在这里用到,比如难度设置为20,那么这里就会进行20次方格交换的动作,难度值越大,方格被交换的次数就越多,打散的就越凌乱。

    可是,红点角色的上下左右一共有四个汉字方格,那应该交换哪个呢?还记得取随机数语句吗,使用它从上下左右四个方向中随机选取一个方向并保存在移动哪个的变量中。

    在接收移动一步的代码中就会用到移动哪个这个变量。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图21)

    而真正实现方格交换的逻辑是写在移动一步这个自制积木中的,这个自制积木还带有一个输入项,叫做用户是否在玩,因为电脑自动打乱方格与用户拼字同时用到了移动一步的自制积木,所以这个输入项就是用来判断并区分这两种情况的。这里我们传入数字0,表示是电脑在自动打乱方格。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图22)

    汉字方块与红点角色在位置交换的过程中涉及到了两个变量,分别是“交换前,位置是否正确”和“交换后,位置是否正确”,它们用于存储交换前后汉字方块的位置是否正确,如果正确则用1表示,如果不正确则用0表示,这里的1和0其实代表布尔值True和False,运算符“与”可以理解为一个判断语句,它前后的两个等于运算式如果都成立,那么与语句的值即为1(True),如果前后两个等于运算式有一个不成立,那么值即为0(False)。

    “交换前,位置是否正确”和“交换后,位置是否正确”这两个变量最主要的作用就是在随后的代码中判断是否要给“正确方格数量”这个变量的值增加1还是减少1。如果“交换前,位置是否正确”是1,而“交换后,位置是否正确”是0,表示我们将一个位置正确的方格移到了错误的位置,这时就要将“正确方格数量”的值减1;反之,如果交换前,位置是否正确”是0,而“交换后,位置是否正确”是1,表示我们将一个位置错误的方格移到了正确的位置,这时就要将“正确方格数量”的值加1。

    接着,如果“用户是否在线”这个输入项传入的值是1的话,表示是用户在操作拼字,同时,如果所有的汉字方块的位置都拼对了,也就是说“正确方格数量”这个变量的值等于了20,那么就会发送全部成功的广播,拼字的任务就完成了!

    交换位置的过程很简单,使用移到语句就能实现两个角色的位置交换。

    汉字方块的代码:

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图23)

    首先,将汉字方块的X、Y坐标分别保存在“选中字X坐标”和“选中字Y坐标”两个变量中,这两个坐标值就是后面红点角色要移到的坐标点。接着,将汉字方块移到选中字替补(即红点)角色的位置上,然后发送广播通知红点角色。

    红点角色接收到广播的代码:

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图24)

    是不是很简单呀,将它移到原来汉字方块的坐标位置就行了。

    好,当我们将所有的汉字方格都按顺序排列好后,代码就会发出全部成功的广播,屏幕上会显示出成功的提示。

济南少儿编程培训:Scratch少儿编程竞赛获奖作品“古诗拼图”!~山东少儿编程~少儿编程(图25)

    总结

    到这里,拼字游戏的所有代码就介绍完了,虽然我们在屏幕上的操作过程很简单,就将文字与红点交换一下,但是这后面的代码实现却很复杂,涉及到了很多的变量,很多的判断,这需要同学们具有非常强的逻辑思维、观察力和思考能力,把游戏语言转化为编程语言的能力可不是一天两天能练成的,不要心急,每天努力一点点,你一定会成为一名编程大神的。

山东机器人编程:家长要了解英国的少儿编程教育!~济南机器人编程~机器人编程(图6)

    速云少儿编程致力于 4 - 18 岁,山东少儿无人机编程教育机构,速云网络发软件工程师授课少儿编程教给孩子们不光要学习编程,还要结合编程知识给我们无人机写程序,实现我们无人机的自动启飞、人脸识别、智能跟随,包括更加高级的编程玩法,就是无人机编舞。可能家长想了!四岁孩子能学习无人机编程吗?那我们看个四岁的小同学吧,你自己看看能不能学习吧!

我们来看一看四岁小朋友的学习视频吧!

    家长担心孩子们真的能听懂课程吗?在每节课即将结束的时候我们都会进行课程汇报展示,来看一下小童鞋的汇报成果吧!

    这个时候家长可能说了,我们四岁的孩子,年龄辣么小,又不认字,那该如何学习呢?

    其实四岁、五岁的孩子不认字怎么学习?只要孩子识别颜色就可以学习。通过颜色识别具体编程积木,比如:蓝色是运动紫色是外观黄色是事件等等,通过颜色识别文字,根据颜色先实现出程序做出卡通的效果,以激发孩子兴趣,使孩子产生兴趣后开始具体学习每个积木的作用,再学习积木上面的文字。如下图:

家长关心孩子从小学习编程的6个问题都在这里了,你还在犹豫吗(图1)

    这个时候你还认为编程难吗?其实针对4岁起,就已经可以学习编程了。通过搭积木的方式让孩子学习编程。

    当然,比如我们下面的无人机编程视频吧!

    无人机能六架一起起飞?没错!那他又和数学有什么关系呢?

    小云说啦!这是根据我们数学中的坐标轴的 x轴 y轴 初始化无人机位置,无人机与无人机之间的距离、架数的多少,全部需要通过精密的计算,否则无法编排出理想的造型

    现在作为家长的你!还在纠结无人机编程是否对孩子有帮助吗?

无人机编程能做什么?人脸识别?智能跟随?自动飞行?还有吗?

答案:有!那就是"无人机编舞"!不知道无人机如何编舞?快看下面我们速云小童鞋的无人机编舞吧!!


    无人机编程都学习哪些内容呢?

       让无人机与编程结合?

没错!就是要让孩子“动手”+“编程”实现无人机起飞。

重点培养孩子逻辑思维能力与动手操作能力,让孩子在编写无人机程序的时,无形的锻炼孩子的逻辑思维能力和前沿科技的运用能力,在飞行学习中,孩子们需了解飞机的机械结构,练习手眼协同能力,甚至自己组装飞行器;在编程中,无人机可以在三维空间中,用摄像头完成巡线、人脸识别等人工智能任务。

例如:人脸识别,智能跟随,红外线定稿,光流定位、无人机编舞等。


无人机编程(图1)



当你的孩子还在学习机器人编程时,别人家的孩子却已经学习起了“无人机编程”(图7)

看我们小童鞋们上课视频吧

    坦克编程都学习哪些内容呢?

    动手组装”+“编写程序”

    通过编程将抽象理论与实践操作合二为一,让孩子重新理解知识,体验人工智能,培养独立思考的习惯和动手解决问题的能力。

    课程涉及机器人拼装、力学等数理知识,运用六类人工智能模块,编写专属的自动驾驶算法程序,让孩子更加深入理解人工智能技术。

    例如:人脸识别、智能跟随等前沿技术。


当你的孩子还在学习机器人编程时,别人家的孩子却已经学习起了“无人机编程”(图8)


当你的孩子还在学习机器人编程时,别人家的孩子却已经学习起了“无人机编程”(图9)

在线客服
热线电话

微信公众账号

在线购课

微信客服