javaScript蓝桥杯----收集帛书碎⽚

news2025/2/4 0:58:18

目录

  • 一、介绍
  • 二、准备
  • 三、目标
  • 四、代码
  • 五、完成


一、介绍

三叔在外出考古途中⽆意发现了⼀份战国帛书,帛书边缘有被明显裁剪过的痕迹,单从帛书⽚段,提到记录了神秘⽂物的地点,⽆奈帛书不完整,为了早⽇将⽂物带回博物馆,三叔号召当地村⺠闷油瓶、王胖⼦、潘⼦共同寻找剩余帛书碎⽚,相约⼀炷⾹后再聚。
本题需要在已提供的基础项⽬中使⽤ JS 知识封装⼀个函数,达到收集帛书碎⽚的要求。

二、准备

开始答题前,需要先打开本题的项⽬代码⽂件夹,⽬录结构如下:

├── js
│ └── collect-puzzle.js
├── css
│ └── style.css
├── images
└── index.html

其中:

  • index.html 是主⻚⾯。
  • css/style.css 是样式⽂件。
  • images 是图⽚⽂件夹。
  • js/collect-puzzle.js 是需要补充代码的 js ⽂件。

在浏览器中预览 index.html ⻚⾯,显示如下所示:
在这里插入图片描述

三、目标

请在 collect-puzzle.js ⽂件中补全函数 collectPuzzle 中的代码,返回包含不同帛书碎⽚的数组,最终拼出完整的战国帛书,需要注意:

  • 同⼀个⼈收集的帛书碎⽚可能是有重复的。
  • 同⼀组内不同的⼈收集的帛书碎⽚也可能是有重复的。
  • ⼯具函数需要统计所有⼈获取的不同帛书碎⽚,⽽不是帛书碎⽚数量。

例如:

// 不同组内的帛书碎⽚不能重复计算
var arr1 = ["灾变", "四时运转", "天象"];
var arr2 = ["四时运转"];
var result1 = collectPuzzle(arr1, arr2);
console.log(result1); // 输出:["灾变","四时运转","天象"]
// 同⼀组内的帛书碎⽚不能重复计算
var arr3 = ["灾变", "灾变", "天象"];
var arr4 = ["灾变", "⽉令禁忌", "天象"];
var result2 = collectPuzzle(arr3, arr4);
console.log(result2); // 输出:["灾变", "天象","⽉令禁忌"]

上述仅为示例代码,判题时会随机提供数组对该函数功能进⾏检测

在题⽬所提供的数据的情况下,点击合成按钮,完成后的效果如下:
在这里插入图片描述

四、代码

index.html

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>收集帛书碎片</title>
    <link rel="stylesheet" href="css/style.css" />
  </head>

  <body>
    <div class="grid">
      <div class="card"><img src="images/01.jpg" /></div>
      <div class="card"><img src="images/02.jpg" /></div>
      <div class="card"><img src="images/03.jpg" /></div>
      <div class="card"><img src="images/04.jpg" /></div>
      <div class="card"><img src="images/05.jpg" /></div>
      <div class="card"></div>
      <div class="card"><img src="images/07.jpg" /></div>
      <div class="card"></div>
      <div class="card"></div>
    </div>
    <div class="message">
      <div class="tip">帛书碎片集结成功</div>
      <div class="text-item" class="text-item-right">
        <div class="chat-name">闷油瓶</div>
        <div class="chat-box" id="user1"></div>
      </div>
      <div class="text-item" class="text-item-right">
        <div class="chat-name">王胖子</div>
        <div class="chat-box" id="user2"></div>
      </div>
      <div class="text-item" class="text-item-right">
        <div class="chat-name">潘子</div>
        <div class="chat-box" id="user3"></div>
      </div>
      <div class="button" id="btnmix">点击合成</div>
      <div class="text-item" class="text-item-right">
        <div class="chat-name">结果</div>
        <div class="chat-box" id="result">等待合成</div>
      </div>
    </div>

    <script src="./js/collect-puzzle.js"></script>
    <script>
      const user1Puzzles = ["四时运转", "灾变", "四时运转", "天象"];
      const user2Puzzles = ["四时运转", "月令禁忌", "天象"];
      const user3Puzzles = ["月令禁忌", "天象", "四时运转", "天象"];
      const resultPuzzles = collectPuzzle(
        user1Puzzles,
        user2Puzzles,
        user3Puzzles
      );

      document.getElementById("user1").innerText += JSON.stringify(user1Puzzles);
      document.getElementById("user2").innerText += JSON.stringify(user2Puzzles);
      document.getElementById("user3").innerText +=
        JSON.stringify(user3Puzzles);
      document.getElementById("btnmix").onclick = function () {
        document.getElementById("result").innerText =
          JSON.stringify(resultPuzzles);
        //当碎片集结成功时效果
        let arr = ["四时运转", "灾变", "月令禁忌", "天象"];
        if (
          resultPuzzles.length === arr.length &&
          resultPuzzles.filter((t) => !arr.includes(t))
        ) {
          document.querySelector(
            ".card:nth-child(6)"
          ).innerHTML = `<img src='images/06.jpg' />`;
          document.querySelector(
            ".card:nth-child(8)"
          ).innerHTML = `<img src='images/08.jpg' />`;
          document.querySelector(
            ".card:nth-child(9)"
          ).innerHTML = `<img src='images/09.jpg' />`;
          document.getElementsByClassName("tip")[0].style.display = "block";
        }
      };
    </script>
  </body>
</html>

js/collect-puzzle.js

function collectPuzzle(...puzzles) {
  // TODO: 在这里写入具体的实现逻辑
}

// 检测需要,请勿删除
module.exports = collectPuzzle;

五、完成

function collectPuzzle(...puzzles) {
  // TODO: 在这里写入具体的实现逻辑
  let set = new Set()
  for (key of puzzles) {
    for (value of key) {
      set.add(value)
    }
  }
  return Array.from([...set])
}

// 检测需要,请勿删除
module.exports = collectPuzzle;

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

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

相关文章

chatgpt赋能python:PythonGUI入门指南:如何安装各种GUI工具包

Python GUI入门指南&#xff1a;如何安装各种GUI工具包 如果你是一名Python开发人员&#xff0c;那么你肯定知道GUI是不可或缺的。它是让用户和程序之间进行交互的一种方法。在Python中&#xff0c;有很多GUI工具包可以选择。但是&#xff0c;安装它们可能会让人感到困惑。在这…

短视频矩阵系统源码

短视频矩阵源码是一种基于短视频技术开发的软件源代码&#xff0c;它包含了短视频录制、编辑、发布以及播放等模块的实现。该源码可以为开发者提供一个快速搭建短视频应用的基础架构&#xff0c;帮助开发者节省大量的时间和精力&#xff0c;同时提高了应用的开发效率和质量。通…

PCL 三角插值

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 地理信息中经常会用到三角插值这种方式来获取指定位置的高程值。其原理如下所述: 假设有一个三角形是这样的: 此外,假设每个顶点(角)都有某种关联值。例如:假设每个顶点都有一个相关联的颜色(或高程值等)。这个…

ubuntu16+nvidia驱动+cuda+an +pytorch安装

一、ubuntu16.04 通过镜像安装 二、nvidia驱动 1、 命令行输入 ubuntu-drivers devices 会出现可以安装以及推荐的驱动&#xff0c;后面带recommended就是推荐的版本 2、安装 驱动 sudo apt-get install nvidia-465 3、不过我安装的是384的版本&#xff0c;安装好后输入 nvid…

【JavaSE】Java(五十二):核心要点总结

文章目录 1. java中普通类和抽象类有哪些区别2. 接口和抽象类有什么区别3. java中的IO流分为几种4. BIO、NIO、AIO 有谁没区别5. Files 的常用方法有哪些 1. java中普通类和抽象类有哪些区别 Java中普通类&#xff08;也就是非抽象类&#xff09;和抽象类有以下几个区别&#x…

chatgpt赋能python:Python如何算圆的面积

Python如何算圆的面积 在数学中&#xff0c;一个圆的面积通过以下公式计算&#xff1a;S πr&#xff0c;其中S是圆的面积&#xff0c;r是圆的半径&#xff0c;π是一个常数&#xff0c;约等于3.14。 Python是一种用于编写高级程序的解释型编程语言。作为一种动态语言&#…

chatgpt赋能python:Python如何自动换行

Python如何自动换行 在Python编程中&#xff0c;有时候我们需要输出很长的文本或字符串&#xff0c;这时候就需要自动换行的功能。本文将介绍Python中实现自动换行的几种方法。 方法一&#xff1a;使用字符拼接 在Python中&#xff0c;我们可以使用"“来拼接字符串。如…

chatgpt赋能python:Python如何更改目录

Python如何更改目录 介绍 Python作为一门通用编程语言&#xff0c;提供了许多用于操作计算机文件系统的方法&#xff0c;其中就包括更改目录的方法。更改目录可以让我们在不离开当前脚本的情况下&#xff0c;改变当前脚本操作文件的位置&#xff0c;使我们更容易管理和访问所…

Leetcode刷题笔记--Hot01-10

1--两数之和 讲解参考&#xff1a;LeetCode 最热门 100 题 主要思路&#xff1a; 对数组进行从小到大的排序&#xff0c;使用两个指针指向第一个元素和最后一个元素&#xff0c;即左指针指向第一个元素A[l]&#xff0c;右指针指向最后一个元素A[R]&#xff1b; 判断两个指针当前…

Threejs进阶之十七:Threejs中的Path、Shape和ShapeGeometry类

在实际的应用中&#xff0c;有时候需要我们根据一个二维图形拉伸为三维图形的情况&#xff0c;这就需要我们对Threejs中提供的二维图形相关的类有一个深入的了解&#xff0c;这一节我们就深入的聊一聊Threejs中的Path、Shape和ShapeGeometry类 目录 Path类构造函数常用属性常用…

chatgpt赋能python:Python字符串跨行:如何在代码中处理长字符串

Python字符串跨行&#xff1a;如何在代码中处理长字符串 当你编写Python代码时&#xff0c;可能会遇到需要编写很长的字符串的情况。例如&#xff0c;你可能需要将一大段文本或HTML代码嵌入到Python程序中。在这种情况下&#xff0c;你需要学会如何将长字符串跨行编写&#xf…

[chatGPT攻略] 如何检测文本内容是否由ChatGPT生成 ?

[chatGPT攻略] 如何检测文本内容是否由ChatGPT生成 ? 在 ChatGPT 爆火的两个月内&#xff0c;学生就已经自发用这种工具做作业、写论文偷懒&#xff0c;编剧会用它编故事试试出乎人意料的故事走向&#xff0c;文案编辑用它来给自己打工。 在用工具给自己省事这件事上&#xf…

无条件抽奖和条件抽奖(互动功能发起端JS-SDK)

无条件抽奖功能概述 允许开始前对抽奖进行奖品、中奖人数、中奖人员等设置&#xff0c;完成设置后可以开始抽奖。 本功能只支持讲师、嘉宾、助教、管理员这四种角色进行抽奖的发起和停止。支持自定义设置中奖用户信息采集字段。支持设置预设中奖用户。支持设置定时开奖可查看…

论文翻译——Test Selection for Deep Learning Systems

文章目录 AbstractIntroductionRelated work&#xff08;这部分没有翻译完全&#xff0c;我主要是用来做课程回报的&#xff0c;后面的实验就够讲了&#xff0c;这里就不讲了&#xff09;3 Motivation and Problem Definition4 Test Selection MetricsMetrics Derived from the…

C++与Qt深度融合:高效设计多线程应用框架

C与Qt深度融合&#xff1a;高效设计多线程应用框架 1. C与Qt线程的混合使用1.1 C线程与Qt线程的基本概念1.2 线程间的相互依赖关系1.3 设计合理的代码框架 二、深入理解C和Qt线程模型2.1 C线程模型2.2 Qt线程模型2.3 C和Qt线程模型的比较 三、C和Qt线程间的互操作性3.1 std::th…

chatgpt赋能python:Python如何获取微信聊天记录

Python如何获取微信聊天记录 作为世界上最受欢迎的即时通讯工具之一&#xff0c;微信被大量用户使用。然而&#xff0c;微信聊天记录的备份和管理是一个重要的问题&#xff0c;特别是对于那些需要在工作和个人生活中快速查找重要信息的人来说。 幸运的是&#xff0c;Python编…

Cloud篇——GateWay 网关

1、GateWay是什么 官网讲解&#xff1a; SpringCloud Gateway 是 Spring Cloud 的一个全新项目&#xff0c;基于 Spring 5.0Spring Boot 2.0 和 Project Reactor 等技术开发的网关&#xff0c;它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。 SpringCloud Gate…

READ-自动驾驶大场景神经渲染

这是一个针对自动驾驶场景的神经渲染方案&#xff0c;提出了一种大规模神经渲染方法来合成自动驾驶场景&#xff08;READ&#xff09;&#xff0c;这使得通过各种采样方案在PC上合成大规模驾驶场景成为可能。 疑问&#xff1a;文中提到基于nerf的方法和神经渲染方法&#xff0…

kali 2023.2安装、换源、更新、SSH

kali2023版本已经更新了&#xff0c;为了体验新版&#xff0c;下载试用了一下。记录初始的安装过程&#xff0c;以备复习用&#xff0c;不足之处欢迎批评指正。 一、下载 1、官网下载&#xff0c;地址&#xff1a;https://www.kali.org/&#xff0c;因为我准备在VM虚拟机中使用…

chatgpt赋能python:Python如何抓取数据

Python如何抓取数据 介绍 Python是一种功能强大的编程语言&#xff0c;它被广泛使用于网络抓取和数据分析。无论您是想要从网站上抓取数据&#xff0c;还是使用API抓取数据&#xff0c;Python都是一种非常适合的工具。在本文中&#xff0c;我们将介绍Python如何抓取数据&…