骰子游戏-第11届蓝桥杯Scratch选拔赛真题精选

news2024/9/21 14:46:50

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第94讲。

蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选了一部分题目进行解读。

第11届蓝桥杯青少年组第5次选拔赛于2020年1月12日举行,形式为线下考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

骰子游戏,本题是2020年1月12日举行的第11届蓝桥杯Scratch选拔赛真题编程第4题,初级组和中级组都有此题,题目要求编程创作一个骰子游戏,模拟两个玩家掷骰子并判断输赢的游戏场景。

先来看看题目的要求吧。

一.题目说明

准备工作:

创建背景room3,并删除小猫角色。

编程实现:

1). 绘制两个骰子角色,每个骰子角色都有6个造型,分别是1-6点;

2). 按下空格,两个骰子均可以随机产生点数;

3). 获胜那一方,会说“我赢了”1秒。平局的话,两个角色同时说“平局”1秒;

4). 每个骰子角色的下面显示累计获胜次数,点击绿旗后可以清零;

5). 游戏为三局两胜制,即有一方先得到2分,比赛结束。胜利的一方要说出“太好了,我是最终胜利者!”,此时按下空格键骰子不再有反应。

评判标准:

  • 10分:实现步骤1;

  • 30分:实现步骤2;

  • 50分:实现步骤3;

  • 80分:实现步骤4;

  • 100分:实现步骤5。

二.思路分析

本题包含两个角色,一个是白色的骰子,一个是绿色的骰子,如图所示:

需要注意的是,这里的两个骰子角色都是需要自己绘制的,很多同学绘制的造型不够整齐美观,超平老师在这里透露两个小技巧:

1). 借助shift键绘制正方形和正圆,选中矩形工具或圆形工具,按下shift键不松开,在画板上拖拽,就可以画出正方形和正圆;

2). 使用复制功能提高效率,当画好一个小圆点后,可以使用复制技巧快速得到完全一样的小圆点,既能保证效果,又能提升效率,两全其美。复制的时候,可以直接使用画板上提供的”复制“和”粘贴“按钮,也可以直接使用快捷键,复制的快捷键是Ctrl+C,粘贴的快捷键是Ctrl+V。

以绿色骰子为例,绘制造型如下:

掷骰子是典型的随机数算法,可以通过”在1到10之间取随机数“指令来实现,这里有两颗骰子,需要使用两个变量保存各自的点数,然后比较双方点数,判断输赢。游戏是三局两胜制,所以还需要两个变量记录双分的比分。

作品的逻辑并不复杂,关键是要控制好程序的执行顺序,比如当按下空格键时,两个骰子均随机产生点数,两个角色都需要进行判断,怎么确保每个角色在判断的时候可以及时获取对方的点数呢?点数相同的时候,双方都要说平局,如何保证程序的同步呢?

针对这两个问题,我们可以使用事件广播机制,在Scratch中,发送广播有两种方式,如图:

第一种方式,在发送广播消息后,立刻继续执行后续指令,其它角色在接收到消息后也立即执行代码,这样就可以实现两个角色的同步执行,上面提到的双方都要说平局的效果就属于这种情况。

第二种方式,在发送广播消息后,并不能立刻执行后续指令,而是要等待其它角色接收到广播消息并执行完程序,才开始执行后续代码,它有一个等待的过程,这可以让我们精确地控制两个角色执行代码的顺序,也是解决本题的关键。

如何确保每个角色在判断的时候可以及时获取对方的点数呢?答案就是使用”广播消息并等待“指令。具体思路是这样的:

当按下空格键时,在骰子1角色中,设置好两个骰子的点数,然后使用”广播消息并等待“指令发送一个广播消息,骰子2在接收到消息之后,就可以判断自己是否赢了,等骰子2角色的代码执行完成,骰子1角色再执行后续代码,判断自己是否赢了。

三.编程实现

根据题目描述和思路分析,我们可以分角色来编写程序:

  • 准备工作

  • 骰子1角色

  • 骰子2角色

1. 准备工作

先创建好4个变量,如图所示:

再将变量”赢局1“和”赢局2“的显示方式设置为大字显示,拖到两个骰子角色的下方,如图:

2. 骰子1角色

我们把骰子1作为主角色,先将变量”赢局1“和”赢局2“初始化为0,然后检测用户是否按下空格键,一旦按下空格键,就将变量“点数1”和”点数2“设置为1-6之间的随机数,然后就可以发送广播消息了,相应的代码如下:

简要说明三点:

1). 对于按下空格键的处理,这里使用的是“重复执行” + “等待按下空格键”,这可以确保游戏结束后,按空格键不再有任何反应,如果直接使用“当按下空格键”指令,就不符合题目要求;

2). 对于骰子1角色来说,它只需要判断两种情况,一是赢了,二是平局,如果是平局,则发送一个“平局”的广播消息;

3). 每赢一局,都需要判断自己是否胜利,游戏是三局两胜值,所以直接使用“赢局1=2”进行判断即可。

3. 骰子2角色

对于骰子2角色来说,代码就比较简单了,如下所示:

骰子2和骰子1的判断逻辑基本相似,它只需要判断自己是否赢了,平局的情况在骰子1角色中已经判断过,只需要在接收广播消息后说平局即可。

四.总结与思考

本题难度系数为3,积木块数量46个左右 ,涉及到的知识点主要包括:

  • 绘制角色和造型,重点是绘制造型的小技巧;

  • 外观编程,包括切换造型和说话指令;

  • 随机数指令的使用;

  • 事件广播机制,尤其是两种不同广播方式的特点和区别;

  • 条件语句的嵌套;

  • 按下空格键的灵活处理,注意两种方式的异同。

本题难度中等,重点是控制好程序的执行流程,这里使用了两种不同的事件广播方式,要深刻理解两种方式的区别,这其实就是编程中常说的同步和异步,二者最大的区别就在于,同步一个需要等待,异步不需要等待。

你认为“广播消息”指令是同步还是异步的呢,“广播消息并等待”指令呢?欢迎和超平老师讨论和交流,

如果你觉得文章对你有所帮助,别忘了点赞,你的鼓励是我坚持继续写下去的最大动力,Thanks♪(・ω・)ノ。

需要素材和源码的,可以联系作者,或者移步至同名vx号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/60277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python源码剖析1-整数对象PyIntObject

1、PyIntObject 对象 [intobject.h] typedef struct {PyObject_HEADlong ob_ival; } PyIntObjectPyIntObject是一个不可变(immutable)对象。Python内部也大量的使用整数对象,我们在自己的代码中也会有大量的创建销毁整型对象的操作&#xff…

霍夫曼树:霍夫曼编码(Huffman Tree:Huffman Coding)

预计阅读时间:10分钟 一、简介 霍夫曼树常处理符号编写工作。根据整组数据中符号出现的频率高低,决定如何给符号编码。如果符号出现的频率越高,则给符号的码越短,相反符号的号码越长。 相关术语 路径:从书中一个节点…

Docker安装可视化管理器Portainer

Docker安装可视化管理器Portainer Portainer 提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm 集群和服务等集中管理和操作、登录用户管理和控制…

Linux/Windows Redis的下载与安装

Redis简介 参考视频教程: https://www.bilibili.com/video/BV13a411q753?p143 Redis下载与安装 Windows版 下载地址: https://github.com/microsoftarchive/redis/releases Linux版下载地址: https://download.redis.io/releases/ 1. Window版本 1.1 redis下载 官网下载…

用ACL实现防火墙功能

目录 实验目的: 实验所需软硬件 实验步骤: 1、按以下拓扑接好线路。 2、配置好设备的IP地址和静态路由,使得所有设备可以互通。(配置截图) PC2 PC0 Router0 Router1​编辑 Server 3、测试各PC/服务器互联状…

基于KubeSphere图形编辑面板构建微服务项目的DevOps 系统

文章目录相关文章部署过程准备工作创建 DevOps 项目创建凭证创建流水线编辑流水线JAVA后端微服务拉取源码构建源码构建镜像推送镜像部署项目VUE前端拉取源码构建源码构建镜像推送镜像部署项目运行流水线查看流水线详情完整流水线脚本微服务后端VUE前端参考相关文章 kubernetes…

Grafana+Prometheus打造运维监控系统(一)-安装篇

1. Prometheus、Grafana介绍 Prometheus是一个开源的系统监控和报警系统,Grafana 是一个开源的监控数据分析和可视化套件,利用GrafanaPrometheus组合,打造运维日常的各种指标监控以及数据可视化。 2. Prometheus 2.1 下载 访问&#xff1…

专利-分析方法总结

目录 一、专利分析的意义 二、专利分析的方法: 2.1、行业专利信息分析 2.1.1、专利技术发展趋势分析 2.1.2、专利区域分布分析 2.1.3、专利相关人分析 2.1.4、专利技术主题分析 2.1.5、技术发展路线分析 2.1.6、专利技术功效分析 2.1.7、专利运营分析 3.…

node环境的搭建

一、node的安装(可以去文末直接安装nvm管理器,就不用配置了) 1 下载 | Node.js,也可以下载以往版本,window是以msi结尾的文件 2 安装,直接一直安装就行,如果有之前安装的版本,先进行卸载,然后再进行安装 3 安装完成后查看版本号 node -vnp…

Linux下文件目录权限管理chmod, chown, chgrp,umask命令使用总结

在Linux系统下常用的文件目录权限管理命令有chmod, chown, chgrp,umask,一直以来都在用,但是没有太注意它们的区别,今天就在这篇文章做个总结。 目录 1. chmod 2. chown 3. chgrp 4. umask 1. chmod 作用:修改某个目录或文件…

C语言实现学生管理系统(顺序表版)

前言 设计知识 使用语言:C语言 数据结构类型:顺序表 内容导图 效果展示 内容目录前言设计知识内容导图效果展示静态管理系统菜单的实现选择功能实现静态开辟空间实现增删功能增加功能实现删除功能实现实现查找功能实现修改功能实现排序功能动态管理系…

rollup打包工具快速入门

0.开始 教学视频出处 https://www.bilibili.com/video/BV1w84y1z77V?p3&spm_id_frompageDriver&vd_source0f7f337dd5a99bb975b88a48ae1b3711 日期:2022/12/3 rollup目前版本: "rollup": "^3.5.1"1.rollup概述 官网 http…

N32G45之串口+DMA数据收发

N32G45之串口DMA数据收发 1.串口简介   通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LI…

【云原生】nacos权限制认证

鉴权 服务端如何开启鉴权 非Docker环境 按照官方文档配置启动,默认是不需要登录的,这样会导致配置中心对外直接暴露。而启用鉴权之后,需要在使用用户名和密码登录之后,才能正常使用nacos。 开启鉴权之前,application.properti…

0115 查找算法Day4

剑指 Offer 03. 数组中重复的数字 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: …

Linux-CPU之平均负载

一般我们觉得系统变慢了,都会执行 top 或者 uptime 命令,来了解系统的负载情况。 uptime11:29:06 up 0 min, 2 users, load average: 1.21, 0.29, 0.10// 当前时间 // 系统运行时间 // 正在登录用户数 //1 分钟、5 分钟、15 分钟的平均负载概念&…

补知识点:Stream API

一、创建Stream 首先创建Stream的话,有四种创建方式: 注: 第一种集合的方式是最常用的 package com.atguigu.gulimall.gateway;import com.atguigu.gulimall.streamapi.Employee; import com.atguigu.gulimall.streamapi.EmployeeData; impo…

【应用】Docker

DockerDocker 的安装基本安装流程配置镜像加速Docker 常用命令镜像相关命令容器相关命令DockerfileDockerfile 常用指令Dockerfile 简单使用案例Dockerfile 构建 java 项目镜像Docker ComposeDocker compose 基本参数services 配置参数Docker 的安装 基本安装流程 使用虚拟机…

Linux JDK8下载安装

JDK安装 整体步骤介绍 操作步骤: 1 查看自己linux版本位 getconf LONG_BIT(64位) 2. 下载jdk的安装包 这里提供三种方法下载: (以jdk-8u171-linux-x64.tar.gz为例) 2.1 官网下载jdk: 官网: https://www.oracle.com/downloads/ jdk最新版本下载: https://www.oracle.com…

带你玩转序列模型之seq2seq模型定向(集束)搜索

目录 一.基础模型 二.选择最可能的句子 三.定向搜索 四.改进定向搜索 五.定向搜索的误差分析 一.基础模型 在这一周,你将会学习seq2seq(sequence to sequence)模型,从机器翻译到语音识别,它们都能起到很大的作用…