js案例:选字游戏

目录

效果预览图

游戏规则 

整体思路 

完整代码 

html部分

js部分


效果预览图

游戏规则 

1.游戏时间为30s,30s倒计时结束弹出游戏结束和对应的游戏分数。

2.根据中间大字的颜色,点击下面对应的文字。 大字的颜色 == 点击的文字(列如:大字的文字是绿,颜色为黄色,则点击下面的小字黄 得分加一,如果点击其他文字则不加分,即使其他文字的颜色是黄色) 分数加一分。

3.点击错误不加分,也不减分。

整体思路 

  1. 定义变量和数组:

    • 创建一个变量 并初始化为零,用于记录得分。
    • 创建一个数组 ,包含游戏中可能出现的颜色名称。
    • 创建一个数组,包含游戏中可能出现的文字。
  2. 创建一个函数dx()开始游戏:

    • 在函数中,使用 setInterval 函数设置一个计时器,每秒减少剩余时间。
    • 定义一个变量num并初始化为 30,用于倒计时。
    • 在计时器的回调函数中,更新剩余时间并将其显示在页面上,如果剩余时间为零,清除计时器,结束游戏。。
  3. 打乱数组的顺序

  4. 设置处理点击事件:

    • 在函数中,获取点击的元素的文字和颜色。
    • 如果颜色与文字匹配,将得分变量加一,并更新页面上的得分显示。
    • 否则,不得分。

完整代码 

html部分

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>文字游戏</title><link rel="stylesheet" href="./css/style.css"> <!-- 引用外部样式表文件 -->
</head>
<body><div class="rongqi"><h3 class="r">剩余时间:<var>30</var> S</h3> <!-- 显示剩余时间的元素 --><h3 class="l">得分: <b>0</b> </h3> <!-- 显示得分的元素 --><div id="dwz"><!-- 待选文字的容器 --></div><div id="xwz"><span></span> <!-- 选中文字的容器 --><span></span><span></span><span></span><span></span></div></div>
</body>
</html>
<script src="./js/wzyx.js"></script> <!-- 引用外部 JavaScript 文件实现游戏逻辑 -->

js部分

// 定义选择器函数 $
function $(ele) {// 判断传入的参数是否为空字符串、undefined、或者是数字或对象if (ele == '' || ele == undefined || typeof ele == "number" || typeof ele == "object") {return; // 返回空值}// 获取传入参数的第一个字符let first = ele.charAt();if (first == '#') { // 如果第一个字符是 #// 返回通过 id 获取的元素return document.getElementById(ele.slice(1));} else if (first == '.') { // 如果第一个字符是 .// 返回通过 class 获取的元素集合return document.getElementsByClassName(ele.slice(1));} else {// 返回通过标签名获取的元素集合return document.getElementsByTagName(ele);}
}// 剩余时间倒计时
let num = 30; // 初始倒计时时间
let n = null; // 用于存放计时器的标识
let sum = 0; // 得分初始化为 0
let timer;n = setInterval(function() {num--; // 每秒减少剩余时间$('var')[0].innerHTML = num; // 更新倒计时显示if (num <= 0) { // 时间归零clearInterval(n); // 清除计时器// 弹出游戏结束的提示框,并显示得分alert(`游戏结束,您的得分为${sum}分`);}
}, 1000);// 声明颜色数组 cols,存放五种颜色
let cols = ['red', 'yellow', 'blue', 'green', 'purple'];
// 声明文字数组 wz,用于存放点击时的文字
let wz = ['红', '黄', '蓝', '绿', '紫'];// 打乱文字和颜色的数组,实现随机生成
function dx() {// 打乱文字数组wz.sort(function() {return Math.random() - 0.5;});// 打乱颜色数组cols.sort(function() {return Math.random() - 0.5;});// 随机设置大字的颜色let c = Math.floor(Math.random() * 5);$('#dwz').style.color = cols[c];console.log(cols[c]);// 随机设置小字的颜色和位置for (let i = 0; i < wz.length; i++) {$('span')[i].innerHTML = wz[i];$('span')[i].style.color = cols[i];$('#dwz').innerHTML = wz[i];}let anc = '';switch (cols[c]) {case 'red':anc = '红';break;case 'yellow':anc = '黄';break;case 'blue':anc = '蓝';break;case 'green':anc = '绿';break;case 'purple':anc = '紫';break;default:break;}// 设置小字的点击事件for (let i = 0; i < wz.length; i++) {$('span')[i].onclick = function() {console.log(wz[i]);if (wz[i] == anc) { // 如果点击的文字和大字的颜色相同sum += 1; // 增加得分}dx(); // 重新生成新的文字和颜色};}$('b')[0].innerHTML = sum; // 更新显示得分的元素
}dx(); // 开始游戏,调用 dx() 函数

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊Http服务化改造实践

在微服务架构体系中远程RPC调用主要包括Dubbo与Http调用两个大类&#xff0c;由于Dubbo拥有服务注册中心&#xff0c;并且起服务的命名非常规范&#xff0c;使用包名.类名.方法名进行描述。 而http调用通常都是使用httpclient等相关类库&#xff0c;这些在使用上并没有问题&am…

PlantUML入门教程:画时序图

软件工程中会用到各种UML图&#xff0c;例如用例图、时序图等。那我们能不能像写代码一样去画图呢&#xff1f; 今天推荐一款软件工程师的作图利器--PlantUML&#xff0c;它能让你用写代码的方式快速画出UML图。 一、什么是PlantUML&#xff1f; PlantUML是一个允许你快速作出…

【Java】线程都有哪几种状态

文章目录 前言传统线程模型&#xff08;操作系统&#xff09;中线程状态Java线程中的状态线程的运行流程 前言 首先我们要知道&#xff0c;在传统&#xff08;操作系统&#xff09;的线程模型中线程被分为五种状态&#xff0c;在java线程中&#xff0c;线程被分为六种状态。 …

X86_64函数调用汇编程序分析

X86_64函数调用汇编程序分析 1 X86_64寄存器使用标准2 对应代码的分析2.1 main函数及其对应的汇编程序2.1.1 main的C代码实现2.1.2 main函数对应汇编及其分析2.1.3 执行完成之后栈的存放情况 2.2 test_fun_a函数及其对应的汇编程序2.2.1 test_fun_a函数的C实现2.2.2 test_fun_a…

(源码版)2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测题一数据分析详解+Python代码

十分激动啊啊啊题目终于出来了&#xff01;&#xff01;官网6点就进去了结果直接卡死现在才拿到题目&#xff0c;我是打算A-E题全部做一遍。简单介绍一下我自己&#xff1a;博主专注建模四年&#xff0c;参与过大大小小数十来次数学建模&#xff0c;理解各类模型原理以及每种模…

容器编排学习(五)卷的概述与存储卷管理

一 卷 1 容器化带来的问题 容器中的文件在磁盘上是临时存放的&#xff0c;这给容器中运行的重要的应用程序带来一些问题 问题1&#xff1a;当容器崩溃或重启的时候&#xff0c;kubelet 会以干净的状态(镜像的状态)重启容器&#xff0c;容器内的历史数据会丢失 问题2&…

OSPF路由协议

OSPF基本信息 OSPF&#xff08;Open Shortest Path First&#xff09;开放式最短路径优先协议是用于网际协议&#xff08;IP&#xff09;网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议&#xff08;IGP&#xff09;&#xff0c;在单一自治系统&#xff08…

elasticsearch的DSL查询文档

DSL查询分类 查询所有&#xff1a;查询出所有数据&#xff0c;一般测试用。例如&#xff1a;match_all 全文检索&#xff08;full text&#xff09;查询&#xff1a;利用分词器对用户输入内容分词&#xff0c;然后去倒排索引库中匹配。例如&#xff1a; match_query multi_ma…

在学习DNS的过程中给我的启发

在国内&#xff0c;关于DNS相关的话题一直络绎不绝&#xff0c;比如DNS根服务器为什么中国没有&#xff0c;还有Anycast BGP实现负载&#xff0c;为什么DNS只有13个&#xff0c;还有DNS over HTTPS 和 DNS over TLS的优劣等等问题&#xff0c;接下来我会找出几个一一说一下其中…

Net跨平台UI框架Avalonia入门-安装和使用(v11版本)

介绍Avalonia v11版本 avalonia v11版本发布了&#xff0c;增加了很多新的功能&#xff0c;Avalonia的扩展也同步升级了。 主要更新内容&#xff1a; 辅助功能&#xff1a;增加了对各种辅助工具的支持&#xff0c;提高了Avalonia应用程序的可用性。输入法编辑器&#xff08;I…

python实现某音自动登录+获取视频数据

前言 Dy这个东西想必大家都用过&#xff0c;而且还经常刷&#xff0c;今天就来用代码&#xff0c;获取它的视频数据 环境使用 Python 3.8 Pycharm 模块使用 requests selenium json re 一. 数据来源分析 1. 明确需求 明确采集网站以及数据内容 网址: https://www.dy.com/…

【电源专题】典型设备的接地设计

在文章:【电源专题】接地的类型 中我们讲到不同的历史时期接地概念是不同的,有为了安全的电气接地和物理接地,也有为了提供参考电位的接地。 那么在设备接地的设计中,我们会怎么进行操作呢? 在文章【电源专题】接地的类型讲到一个混合接地的例子,我们可以把大功率的地接…

13分钟聊聊并发包中常用同步组件并手写一个自定义同步组件

本篇文章通过AQS自己来实现一个同步组件&#xff0c;并从源码级别聊聊JUC并发包中的常用同步组件 本篇文章需要的前置知识就是AQS&#xff0c;阅读本篇文章大概需要13分钟 自定义同步组件 为了更容易理解其他同步组件&#xff0c;我们先来使用AQS自己来实现一个常用的可重入…

Origin绘制彩色光谱图

成果图 1、双击线条打开如下窗口 2、选择“图案”-》颜色-》按点-》映射-》Wavelength 3、选择颜色映射 4、单击填充-》选择加载调色板-》Rainbow-》确定 5、单击级别&#xff0c;设置成从370到780&#xff0c;右侧增量选择2&#xff08;越小&#xff0c;颜色渐变越细腻&am…

时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测…

Kotlin委托Delegate托管by

Kotlin委托Delegate托管by import kotlin.reflect.KPropertyfun main() {var user: String by MyDelegate()user "fly"println(user) }class MyDelegate {private var v: String? nulloperator fun getValue(thisRef: Any?, property: KProperty<*>): Stri…

【Spring面试】一、SpringBoot启动优化与Spring IoC

文章目录 Q1、SpringBoot可以同时处理多少请求Q2、SpringBoot如何优化启动速度Q3、谈谈对Spring的理解Q4、Spring的优缺点Q5、Spring IoC容器是什么&#xff1f;作用与优点&#xff1f;Q6、Spring IoC的实现机制是什么Q7、IoC和DI的区别是什么Q8、紧耦合与松耦合的区别&#xf…

如何让自己的精力集中 Maven自学笔记 马云演讲观看

目录 如何让自己的精力集中 Avoid having multiple tasks and objects in your line of sight 人的脑袋是给自己思考用的 晚上床上想千条路&#xff0c;早上起床还是走原路 参与才会变得更好 共度灾难&#xff0c;是需要互相鼓励的 CFO Capital 上海各区都有哪些大学?…

LabVIEW对EAST长脉冲等离子体运行的陀螺稳态运行控制

LabVIEW对EAST长脉冲等离子体运行的陀螺稳态运行控制 托卡马克是实现磁约束核聚变最有希望的解决方案之一。电子回旋共振加热&#xff08;ECRH是一种对托卡马克有吸引力的等离子体加热方法&#xff0c;具有耦合效率高&#xff0c;功率沉积定位好等优点。陀螺加速器是ECRH系统中…

Kafka3.0.0版本——消费者(消费者组案例)

目录 一、消费者组案例1.1、案例需求1.2、案例代码1.2.1、消费者1代码1.2.2、消费者2代码1.2.3、消费者3代码1.2.4、生产者代码 1.3、测试 一、消费者组案例 1.1、案例需求 测试同一个主题的分区数据&#xff0c;只能由一个消费者组中的一个消费。如下图所示&#xff1a; 1…