Scratch 教程《元宵猜灯谜》

article/2025/10/6 9:16:06

程序演示

元宵节到了,用Scratch给小朋友做一个猜灯谜游戏!

课程引入

青玉案·元夕
【宋】辛弃疾
东风夜放花千树,更吹落、星如雨。宝马雕车香满路。凤箫声动,玉壶光转,一夜鱼龙舞。
蛾儿雪柳黄金缕,笑语盈盈暗香去。众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。

这首诗是宋朝大词人辛弃疾所写,描写了元宵节北宋的夜晚,满城灯火,众人狂欢的景象。

元宵节简介

每年农历的正月十五日,是中国的传统节日元宵节。正月是农历的元月,古人称夜为“”,所以称正月十五为“元宵节”。

正月十五日是一年中第一个月圆之夜,也是一元复始,大地回春的夜晚,人们对此加以庆祝,也是庆贺新春的延续。

民间有“正月十五大于年”的说法,只有过了元宵节,年才算过完。

猜灯谜习俗

古代,每年元宵节,人们总要分曹射覆,引为笑乐。猜灯谜,是我国独有的富有民族风格的一种文娱形式,也是元宵节必不可少的风俗传统

分曹射覆:描写的是酒桌娱乐的情景。分曹,将大家分组的意思。射覆,一种酒令游戏。晚唐诗人李商隐的《无题》一诗中,就引用了分曹射覆一词。

无题
【唐】李商隐
昨夜星辰昨夜风,画楼西畔桂堂东。身无彩凤双飞翼,心有灵犀一点通。
隔座送钩春酒暖,分曹射覆蜡灯红。嗟余听鼓应官去,走马兰台类转蓬。

灯谜最早是由谜语发展而来的,起源于春秋战国时期。它是一种富有讥谏、规戒、诙谐、笑谑的文艺游戏。谜语悬之于灯,供人猜射,开始于南宋。

根据《武林记事·灯品》记载:以绢灯剪写诗词,时寓讥笑,及画人物,藏头隐语,及旧京诨语,戏弄行人。元宵佳节,帝城不夜。春宵赏灯之会,百戏杂陈。诗谜书于灯,映于烛,列于通衢,任人猜度;所以称为灯谜

灯谜的典故

关于灯谜,还有这样一个有趣的典故呢!

相传,很早的时候,有个姓胡的财主,人称“笑面虎”。这笑面虎嫌贫爱富,平日鱼肉乡里。村里有位叫王少的穷秀才,决定要逗逗这个笑面虎。

有一年,元宵将临,各家各户都忙着做花灯,王少也乐哈哈地忙了一天。到了元宵灯节的晚上,王少打出一顶花灯上了街。只见这花灯扎得又大又亮,更为特别的是上面还题着一首诗。王少来到笑面虎门前,把花灯挑得高高的,引得好多人围看,笑面虎也忙挤到花灯前,见灯上题着四句诗:

头尖身细白如银,
论秤没有半毫分,
眼睛长到屁股上,
光认衣裳不认人。

笑面虎一看,只气得哇哇乱叫:“好小子,胆敢来骂老爷!”。于是命家丁来抢花灯。

王少忙挑起花灯,笑嘻嘻地说:“老爷,咋见得是骂你呢?”

笑面虎气呼呼地说:“你那灯上是咋写的?这不是骂我是骂谁?”

王少仍笑嘻嘻地说:“噢,老爷是犯了猜疑。我这四句诗是个谜,谜底就是‘绣花针’,你想想是不是?”

笑面虎一想:可不哩!只气得干瞪眼,转身狼狈地溜走了。周围的人见了,只乐得哈哈大笑。

第二年元宵,人们纷纷仿效,将谜语写在花灯上,供人猜射取乐所以就叫“灯谜”。以后相沿成习,猜灯谜、打灯虎成了元宵佳节的重要活动内容,《红楼梦》里有好几个章回都描绘了清人制猜灯谜的情景。

制作元宵猜灯谜游戏

游戏说明

当游戏开始后,玩家需回答出灯谜答案,如果回答正确,则增加一分。一共有十道灯谜题,比比谁的得分高。

灯谜谜面

在开始制作游戏前,我们先准备好游戏的谜面和谜底。

  1. 又进村来。(打一个字)【谜底:树】
  2. 半真半假。(打一个字)【谜底:值】
  3. 要一半,扔一半。(打一个字)【谜底:奶】
  4. 一气之下,拂手而去。(打一个字)【谜底:氟】
  5. 小小诸葛亮,独坐军中帐。摆下八卦阵,专捉飞来将。(打一动物)【谜底:蜘蛛】
  6. 远看是喷泉,近看像岛屿。像鱼不是鱼,终生住海里。(打一动物)【谜底:鲸】
  7. 黄金布,包银条,中间弯弯两头翘。(打一水果)【谜底:香蕉】
  8. 头戴大圆帽,身藏淤泥中。有丝不织布,有洞不长虫。(打一蔬菜)【谜底:藕】
  9. 麻屋子,红帐子,里面住个白胖子。(打一农作物)【谜底:花生】
  10. 新时白头发,旧时变成黑,闲时戴帽子,忙时把帽摘。(打一学习用品)【谜底:毛笔】

导入背景

首先,我们导入一个合适的背景图

制作角色

开始按钮角色

我们导入制作好的游戏开始按钮角色。

灯牌角色

我们导入制作好的游戏灯牌角色。

游戏规则角色

绘制一个游戏规则,规则可以自己随便写。

灯谜角色

制作一个灯谜角色,一共 10 个造型,分别是灯谜的谜面。

老虎角色

绘制一个老虎角色,老虎角色一共三个造型,还有两个造型是答对的时候和答错的时候要显示出来。

创建变量

我们给游戏程序创建三个变量,一个是灯谜编号,一个是积分,一个是游戏开始。再创建一个答案列表,用来记录灯谜的答案。

  • 灯谜编号变量:灯谜角色的造型名分别为 1~10,这个变量和灯谜造型名以及后面的灯谜答案一一对应。
  • 积分变量:用来记录玩家的积分,答对了则积一分。
  • 游戏开始变量:用来判断是否游戏开始。
  • 答案列表:记录灯谜的答案。

导入音效

我们给游戏增加一些音效。

首先,给背景音乐增加一个欢快的音效。

然后,给老虎角色增加两个音效,分别是答对了和答错了的音效。

角色代码

开始按钮角色

灯牌角色

游戏规则角色

灯谜角色

灯谜角色有 10 个造型,每个造型上面就是一个灯谜。我们把对应灯谜的谜底放到“答案列表”中。

当游戏开始时,依次切换造型,并询问灯谜的答案。

老虎角色

素材领取

本教程相关的素材图片音效程序源文件等资源素材领取方式。


『 赠人玫瑰 🌹 手有余香 』
素材资源👇👇👇
【微信公众号“Code工场”回复「灯谜」即可!】

作者介绍

  • 🎓 松露老师,华东师范大学软件工程硕士,计算机编程老师。常年辅导学生参加蓝桥杯及信奥赛,并取得优异成绩。热爱思考,热爱逻辑,系《逻辑思维 100 题》专题文章作者。

  • 🎓 俊燕老师,华东师范大学数学系博士,数学教育专家。拥有多年数学教育教学经验,善于激发学生的学习兴趣和求知欲望,帮助学生建立起数学思维,培养学生的数学核心素养。

所有内容均为作者整理发布。因作者水平有限,如有错误,欢迎指正。如有问题咨询或合作意向,可扫码添加微信哦!😊


http://chatgpt.dhexx.cn/article/Fg5YUkNX.shtml

相关文章

Python 猜字谜游戏

import random WORDS ("python","import","hello","difficult","easy") print("欢迎来到猜单词游戏,请将乱序后的单词组成正确的单词") iscontinue "y" while iscontinue"y" or…

c语言猜字谜(详解)(后附完整源码)

c语言猜字谜 一.游戏前置二.游戏实现1.让电脑生成随机数2.让玩家重复输入3.输赢判断 一.游戏前置 向其他游戏一样,在游戏开始前,我们需要一个菜单让玩家进行选择 所以我们需要以下功能 1.一个能让玩家进行选择的函数(switch) 2.玩…

猜字谜小游戏

猜字谜小游戏 思路 : 先写一个菜单函数,打印一个菜单,获取用户输入 从菜单函数中调用Game函数 写Game函数里面的内容 从主函数中调用菜单函数 #include<stdio.h> #include<stdlib.h>//里面包含rand函数,system函数 #include<time.h> void Game(void);//声明…

猜字谜游戏

一个非常简单的猜数字游戏&#xff0c;在一个限定的范围内&#xff0c;系统会给出一个随机的未知数&#xff0c;让玩家自己去猜&#xff0c;并且还会根据玩家输入的数给出相应的提示。如下图&#xff1a; 原理很简单&#xff0c;主要通过Random函数构建循环方法&#xff0c;再用…

【Flink】FLink Assigned key must not be null

1.场景1 1.1 概述 flink报错: Caused by: java.lang.NullPointerException: Assigned key must not be null! 具体如下 原因 keyBy的字段不能为null M.参考 Flink运行出现Assigned key must not be null

vuex报错Computed property “xxx“ was assigned to but it has no setter.

当使用vuex存储数据时&#xff0c;常常有这样的需求&#xff1a;输入框显示并动态修改state中的数据。 我们第一个反应就是使用v-model直接绑定state中的数据&#xff0c;虽然确实可以显示和修改&#xff0c;但是控制台会报错&#xff0c;所以不能采取这种方式。 案例如下&…

可编程渲染管线报错 Unity Universal RP asset not assigned

可编程渲染管线报错 Unity Universal RP asset not assigned 解决 1.创建urp资产 创建成功如下图 2.打开Edit > Project Settings… > Graphics 3.设置资产 如果你安装了URP包&#xff0c;当你编写自定义渲染管线时&#xff0c;既是你设置的上图资产也会报同样的错误。…

【Flink】FLink assigned slot xx was removed

1.概述 flink报错 org.apache.flink.util.FlinkException: The assigned slot container_e08_1539148828017_15937_01_003564_0 was removed. at org.apache.flink.runtime

Flink线上问题: The assigned slot container_xxx was removed

Flink线上问题: The assigned slot container_xxx was removed 客户现场使用Flink(on Yarn)进行数据抽取,Source是JDBC,Sink是Kafka,客户反映流程差不多跑10天左右就挂,让我看看. 环境: Flink: 1.5.2 jdk: 1.8.0_25 Hadoop: 2.4.1 jobmanger和TaskManger都分配1G内存 首先…

There‘s no Qt version assigned to project xxx.vcxproj for configuration Debug/x64

Qt系列文章目录 文章目录 Qt系列文章目录前言一、 分析错误原因二、解决步骤1.选择Qt版本2.检查环境变量3.重新构建工程 There’s no Qt version assigned to project xxx.vcxproj for configuration Debug/x64 前言 如果你想了解关于Qt与VS2019开发环境搭建&#xff0c;可以至…

SAP ABAP一组关键字 IS BOUND, IS NOT INITIAL和IS ASSIGNED的用法辨析

ABAP里的IS BOUND, IS NOT INITIAL和IS ASSIGNED这组关键字&#xff0c;如果平时不留心&#xff0c;很容易理解地似是而非。今天我们就来说一说它们的区别。 先把SAP帮助文档抄过来&#xff1a; IS BOUND It checks whether a reference variable contains a valid referenc…

【FLink】Assigned key must not be null

1.概述 我的flink任务报错Assigned key must not be null,但是我把keyby用到的字段已经提前做了非空过滤,还是偶尔会报这个错。 还没法复现这个问题。 对应的源码位于 public static int assignToKeyGroup(Object key, int maxParallelism) {Preconditions.checkNotNull(k…

xxx is assigned a value but never used 报错

xxx is assigned a value but never used报错 找到路径 package.json文件 -> devDependencies -> rules 添加以下代码 "rules": {"generator-star-spacing": "off","no-debugger": "off","no-tabs": &quo…

There is no Qt version assigned to project

问题描述&#xff1a;最近从用vs2017Qt5.13编写程序&#xff0c;从一台已经编译好的电脑上拷贝到另外一台有vs2017和Qt5.13环境的电脑&#xff0c;但是问题来了&#xff0c;出现了如下图片的描述&#xff1a; 解决方法&#xff1a;首先检查Qt Project Setting&#xff0c;如果界…

Unity Universal RP asset not assigned

Unity Universal RP asset not assigned 问题解决 问题 项目导入URP后&#xff0c;相机出现这个错误 解决 打开Edit > Project Settings… > Graphics在可脚本渲染管道设置字段中&#xff0c;添加前面创建的通用渲染管道资产。 参考: Unity Doc

IDEA报错private field “xxx“ is never assigned解决

文章目录 1.现象2.解决办法 1.现象 在IDEA中&#xff0c;开发Spring项目时&#xff0c;在一个类中使用Autowired注解注入成员变量时&#xff0c;IDEA会在该成员变量上报类似于如下警告&#xff1a; 一开始还以为是代码哪里配置的有问题&#xff0c;以前也没遇到过啊。 暂时怀…

Computed property was assigned to but it has no setter问题随记

初始代码&#xff1a;弹窗使用dialogtablvisible 但是其他位置改变了这个值 在methods中修改了这个属性的值 当该事件发生时会报这个错误Computed property was assigned to but it has no setter 解决方法其实很简单&#xff0c;组件中定义的computed属性缺少setter,使用过co…

前端开发:Vue报错Computed property “show“ was assigned to but it has no setter的解决方法

前言 在前端开发中,使用Vue的时候关于组件使用是非常常见的操作,而且也会遇到各式各样的问题,尤其是刚接触前端开发的开发者。本篇博文分享一下在封装关于Vue的组件的时候,通过计算属性监听父子组件传值提示警告的问题,即:Computed property "show" was assign…

‘xxx‘ is assigned a value but never used.

报这个错误的原因是eslint中的验证语法导致的 解决办法&#xff0c;在报这个错误行后面加上 // eslint-disable-line no-unused-vars即可解决 解决后如下所示&#xff1a;