【电子学会】2022年12月图形化二级 -- 老鹰捉小鸡
老鹰捉小鸡
小鸡正在农场上玩耍,突然从远处飞来一只老鹰,小鸡要快速回到鸡舍中,躲避老鹰的抓捕。
1. 准备工作
(1)删除默认白色背景,添加背景Farm;
(2)删除默认角色小猫,添加角色Chick、Griffin。
2. 功能实现
(1)角色的初始位置和方向如下图所示;

(2)老鹰不断向右下移动,碰到边缘就反弹,不能倒立;
(3)用上、下、左、右键,控制小鸡朝上下左右四个不同的方向移动,不能倒立;
(4)老鹰碰到小鸡后,老鹰会说“我抓住你了!” 2秒,停止全部脚本;

(5)小鸡走进鸡舍后,会说“我安全啦!”2秒,然后消失,停止全部脚本。

3. 设计思路与实现
(1)角色分析
角色:Chick、Griffin
(2)背景分析
背景:Farm
(3)所用积木块介绍
a. 运动类

- 角色移动指定的步数,正数就是向前,负数就是向后。

- 将角色移动到舞台中指定的X/Y坐标位置,默认坐标(x:0, y:0)。
- x的范围(-240, 240);y的范围(-180, 180)。

- 将角色朝向某个指定的方向。
- 通常用作控制角色在舞台中的上下左右朝向。即0朝上,90朝右(默认),180朝下,-90朝左。

- 角色碰到边缘后就往回走。

- 设定角色旋转方式为“左右翻转”,下拉可选“不可旋转”,“任意旋转”。
- 这三种旋转方式区别在于:左右翻转(正常转向后角色上下结构不变),不可旋转(不能进行旋转),任意旋转(转向后上下颠倒,Scratch默认旋转方式)。
b. 外观类

- 在规定的时间内在舞台上显示输入的文字(说话云朵)。

- 将角色的大小调整为指定的值。
- 该积木块通常在角色初始化时使用。

- 在舞台中显示当前角色。

- 在舞台中隐藏当前角色。
c. 事件类

- 程序开始积木块。
- 点击舞台区的绿旗,执行以绿旗开始的所有程序脚本。
d. 控制类

- 循环积木块:一遍一遍地执行包起来的积木序列。
- 重复执行模块里面的积木指令,相当于一个死循环,永不停止,除非在某个地方结束脚本。

- 条件判断语句,如果条件返回值为真(bool值),那么执行模块里面的积木指令,如果条件不成立,返回值为假,执行条件判断模块后面的程序指令。

- 循环积木块:一遍一遍地执行包起来的积木序列。
- 判断条件是否为真,如果尖尖角里面的返回值为真则停止循环。

- 将所有的角色和背景的脚本停止执行,下拉倒三角还可以选择“停止当前角色的其它脚本”和“这个脚本”。
e. 侦测类

- 检测是否碰到指定的颜色,如果是返回bool值“真”,否则返回bool值“假”。

- 判断当前角色是否碰到鼠标,下拉可以选择其它角色和舞台边缘。

- 侦测是否按下了键盘的某个按键,获取一个为真或假的布尔值。
- 通过下拉三角可以选择空格键、方向键、任意键、字母键和数字键。
(4)角色、舞台背景设置
a. 角色设置
我们删除默认的角色小猫,在角色仓库中选择题目要求的角色“Chick”、“Griffin”。

b. 舞台背景设置
我们按照题目的要求选择舞台背景“Farm”。

按照题目要求删除默认白色背景。

(5)脚本编写
编程题的功能实现有多种方案,标准答案所示参考程序仅是其中的一种,最终以是否完成题目要求的功能实现效果作为评分依据。
a. 角色:Griffin

当绿旗被点击时:
- 开始:点击绿旗,也就是程序启动,就要执行后续的程序指令。
- 初始化大小:60
- 初始化位置:X = -7,Y = 103。
- 旋转方式:左右翻转。(老鹰不能倒立)
- 初始化方向:135°。(老鹰不断向右下移动)
- 重复执行直到 碰到Chick:
- 移动5步。
- 碰到边缘就反弹。(老鹰不断向右下移动,碰到边缘就反弹)
- 说“我抓住你了”,2秒。(老鹰碰到小鸡后,老鹰会说“我抓住你了!” 2秒,停止全部脚本。)
b. 角色:Chick


当绿旗被点击时:
- 开始:点击绿旗,也就是程序启动,就要执行后续的程序指令。
- 初始位置:X = 191,Y = -134。
- 旋转方式:左右翻转。
- 初始方向:-90°。
- 重复执行:(用上、下、左、右键,控制小鸡朝上下左右四个不同的方向移动,不能倒立)
- 如果按下“向上”键:设置旋转方式为“任意旋转”,面向0°方向,移动10步。
- 如果按下“向下”键:设置旋转方式为“任意旋转”,面向180°方向,移动10步。
- 如果按下“向左”键:设置旋转方式为“左右翻转”,面向-90°方向,移动10步。
- 如果按下“向右”键:设置旋转方式为“左右翻转”,面向90°方向,移动10步。

当绿旗被点击时:
- 开始:点击绿旗,也就是程序启动,就要执行后续的程序指令。
- 初始状态:显示
- 重复执行:(小鸡走进鸡舍后,会说“我安全啦!”2秒,然后消失,停止全部脚本。)
- 如果碰到黑色,说“我安全了”,2秒,隐藏,停止全部脚本。
4. 评分标准
(1)背景和角色添加正确(1分);
(2)点击绿旗后,角色的初始位置正确(1分),方向正确(1分),老鹰不断移动,旋转方式正确,碰到边缘反弹(2分);
(3)按下上、下、左、右键可以让小鸡朝上下左右不同方向移动(2分),旋转方式正确(1分);
(4)老鹰碰到小鸡后,说出“我抓住你了!”(2分),停止全部脚本(1分);
(5)小鸡碰到鸡舍黑色部分后,说出“我安全啦!”(2分),隐藏(1分),停止全部脚本(1分)。
5. 知识块

相关文章:
【电子学会】2022年12月图形化二级 -- 老鹰捉小鸡
老鹰捉小鸡 小鸡正在农场上玩耍,突然从远处飞来一只老鹰,小鸡要快速回到鸡舍中,躲避老鹰的抓捕。 1. 准备工作 (1)删除默认白色背景,添加背景Farm; (2)删除默认角色小…...
C++的双端队列
双端队列介绍1.双端队列知识需知2.大试牛刀1.双端队列知识需知 由于队列是一种先进先出(FIFO)的数据结构,因此无法直接从队列的底部删除元素。如果希望从队列的底部删除元素,可以考虑使用双端队列(deque)。…...
【独家】华为OD机试 - 拼接 URL(C 语言解题)
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...
为什么使用Junit单元测试?Junit的详解
Hi I’m Shendi 为什么使用Junit单元测试?Junit的详解 Junit简介 Junit是一个Java语言的单元测试框架。 单元测试是一个对单一实体(类或方法)的测试 JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression test…...
怎么学好嵌入式Linux系统和驱动
嵌入式专业是一门实践性非常强的学科,只有多动手,多实践,多编程,多调试,多看书,多思考才能真正掌握好嵌入式开发技术。 现在很多同学也意识到了学校培养模式和社会需求脱节问题,有一部分同学也先…...
Spring Aware总结
概述 Spring中Aware到底是什么意思? 我们在看Spring源码的时候,经常可以看到xxxAwarexxx的身影,通常我会很疑惑,Aware到底是什么意思呢? 比如图片中这些包含Aware关键字的类或者接口。 我对下面3个类或接口进行了解…...
【RocketMQ】源码详解:Broker端消息刷盘流程
消息刷盘 同步入口:org.apache.rocketmq.store.CommitLog.GroupCommitService 异步入口:org.apache.rocketmq.store.CommitLog.FlushRealTimeService 刷盘有同步和异步两种,在实例化Commitlog的时候,会根据配置创建不同的服务 p…...
编码器SIQ-02FVS3驱动
一.简介 此编码器可以是功能非常强大,可以检测左右转动,和按键按下,所以说这一个编码器可以抵三个按键,而且体积非常小,使用起来比三个按键要高大尚,而且驱动也简单。唯一不足的点就是价格有点小贵6-8元才…...
【2021.9.7】记一次exe手动添加shellcode
【2021.9.7】记一次exe手动添加shellcode 文章目录【2021.9.7】记一次exe手动添加shellcode0.大致思路1.获取MessageBox的真实地址VA2.通过OD在代码段添加shellcode3.dump出数据,设置程序OEP4.测试dump出来的exe5.方法总结测试的exe和添加了shellcode的exe:链接&…...
常用训练tricks,提升你模型的鲁棒性
目录一、对抗训练FGM(Fast Gradient Method): ICLR2017代码实现二、权值平均1.指数移动平均(Exponential Moving Average,EMA)为什么EMA会有效?代码实现2. 随机权值平均(Stochastic Weight Averaging,SWA&a…...
具有精密内部基准的 DACx0502 简介及驱动应用示例
DACx0502 说明 16 位 DAC80502、14 位 DAC70502 和 12 位DAC60502 (DACx0502) 数模转换器 (DAC) 均为具有电压输出的高精度、低功耗器件。 DACx0502 线性度小于 1LSB。凭借高精度和微型封装特性,DACx0502 非常适合以下 应用: 增益和失调电压校准、电流…...
C语言函数:字符串函数及模拟实现strncpy()、strncat()、strncmp()
C语言函数:字符串函数及模拟实现strncpy()、strncat()、strncmp() 在了解strncpy、strncat()、前,需要先了解strcpy()、strncat(): C语言函数:字符串函数及模拟实现strlen() 、strcpy()、 strcat()_srhqwe的博客-CSDN博客 strncp…...
学术论文插图要求简介
1. 类型 位图和矢量图是两种不同的图像类型,它们在存储和处理图像时使用不同的方法。以下是它们之间的详细区别: 图像构成方式:位图使用像素(或图像的最小单元)来构建图像,每个像素都有自己的颜色和亮度值。…...
【独家】华为OD机试 - 斗地主 2(C 语言解题)
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...
力扣-计算特殊奖金
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1873. 计算特殊奖金二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总…...
华为校招机试真题目录
专栏介绍 本专栏将逐步收集历年华为校招算法真题 专栏权益 每篇博客都包含: 算法考点解析(文字+画图)算法源码(支持 Java / JS / Python)每晚9:00 ~ 11:00 在线答疑 真题目录 时间题目考点 or 实现2022.11.27...
EdgeYOLO学习笔记
EdgeYOLO学习笔记 EdgeYOLO: An Edge-Real-Time Object Detector Abstract 本文基于最先进的YOLO框架,提出了一种高效、低复杂度、无锚的目标检测器,该检测器可以在边缘计算平台上实时实现。为了有效抑制训练过程中的过拟合,我们开发了一种…...
【分布式】什么是分布式锁?正文揭晓
分布式锁的概念 分布式锁其实可以理解为:控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性。 举个例子:假设共享的资源就是一个房子,里面有各种书,分布式系统就是要进屋看书的人, 分布式锁…...
超详细JDK1.8所有版本下载地址
JDK1.8即为JDK8,JDK8是目前是最成熟最稳定的版本,本文将详细介绍JDK1.8历史版本的下载方式。 在此附上JDK1.8安装与配置教程 超详细JDK1.8安装与配置 一、JDK官网 首先打开oracle官网,官网首页地址为 JDK官网首页地址 点击Products 点击…...
论文解析[11] CAT: Cross Attention in Vision Transformer
发表时间:2021 论文地址:https://arxiv.org/abs/2106.05786v1 文章目录摘要3 方法3.1 总体结构3.1.1 Inner-Patch Self-Attention Block3.1.2 Cross-Patch Self-Attention Block3.1.3 Cross Attention based Transformer结论摘要 使用图像patch来替换tr…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...
GAN模式奔溃的探讨论文综述(一)
简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...
五、jmeter脚本参数化
目录 1、脚本参数化 1.1 用户定义的变量 1.1.1 添加及引用方式 1.1.2 测试得出用户定义变量的特点 1.2 用户参数 1.2.1 概念 1.2.2 位置不同效果不同 1.2.3、用户参数的勾选框 - 每次迭代更新一次 总结用户定义的变量、用户参数 1.3 csv数据文件参数化 1、脚本参数化 …...
