js猜拳游戏

news2024/11/16 21:57:01

文章目录

  • 1. 演示效果
  • 2. 分析思路
  • 3. 代码实现
    • 3.1. 方式一
    • 3.2. 方式二

1. 演示效果

QQ录屏20240325092020 -original-original

2. 分析思路

  1. 获取玩家的出拳(获取按钮的标签体)
  2. 获取电脑的出拳(随机数)
  3. 比较二者的出拳,将比较的结果设置到对应的 span 标签中

3. 代码实现

3.1. 方式一

将点击事件进行动态绑定。

const btns = document.querySelectorAll("button");

//获取需要设置的元素对象
const me = document.querySelector(".me");
const robot = document.querySelector(".robot");
const result = document.querySelector(".result");

//遍历按钮对象添加事件
btns.forEach((item) => {
  //添加事件
  item.addEventListener("click", function () {
    //获取玩家的出拳(获取按钮的标签体)
    let player = item.innerHTML;
    me.innerHTML = player; //将玩家的出拳设置进去

    //获取电脑的出拳(随机数)
    const arr = ["石头", "剪刀", "布"];
    let cmp = arr[Math.floor(Math.random() * arr.length)];
    //console.log(cmp)
    robot.innerHTML = cmp; //将电脑的出拳设置进去

    //比较出拳的结果
    if (
      (player == "石头" && cmp == "剪刀") ||
      (player == "剪刀" && cmp == "布") ||
      (player == "布" && cmp == "石头")
    ) {
      result.innerHTML = "玩家获胜";
    } else if (player == cmp) {
      result.innerHTML = "平局";
    } else {
      result.innerHTML = "电脑获胜";
    }
  });
});

3.2. 方式二

将点击事件进行行内绑定。

    <script>
      // 获取元素
      const buttons = document.querySelectorAll("button");
      const me = document.querySelector(".me");
      const robot = document.querySelector(".robot");
      const result = document.querySelector(".result");

      // 遍历按钮对象添加点击事件
      buttons.forEach((btn) => {
        btn.addEventListener("click", function () {
          // 获取玩家的出拳
          const meChoice = this.innerText;
          me.innerText = meChoice;

          // 电脑出拳
          let arr = ["剪刀", "石头", "布"];
          // 随机获得一个出拳
          let robotChoice = arr[Math.floor(Math.random() * arr.length)];
          robot.innerText = robotChoice;

          // 判断结果
          if (
            (meChoice == "剪刀" && robotChoice == "布") ||
            (meChoice == "石头" && robotChoice == "剪刀") ||
            (meChoice == "布" && robotChoice == "石头")
          ) {
            result.innerText = "玩家获胜";
          } else if (meChoice == robotChoice) {
            result.innerText = "平局";
          } else {
            result.innerText = "电脑获胜";
          }
        });
      });
    </script>

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

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

相关文章

Python网络爬虫(四):b站评论

首先来看一下采集的数据格式: 本文不对数据采集的过程做探讨,直接上代码。首先要在程序入口处bvids列表内替换成自己想要采集的视频bvid号,然后将self.cookies替换成自己的(需要字典格式),代码可以同时爬取多个视频的评论,且爬取的评论较为完整,亲测有效: im…

股权激励和期权激励对比辨析

文章目录 概念定义 收益方式 风险评估 应用和分析 股权激励和期权激励&#xff0c;两者的区别是什么&#xff0c;本文就来梳理对比一下。 概念定义 股权激励&#xff0c;是指上市公司以本公司股票为标的&#xff0c;对其董事、高级管理人员及其他员工进行的长期性激励。取得…

二维相位解包理论算法和软件【全文翻译- 简单的路径依赖检验(2.6)】

将公式 2.33 【见前面的文章中】代入公式 2.2,可得 其中积分 代表与路径无关的解,只捕捉 φ 的非旋转成分,以及 代表包含 φ 旋转部分的路径依赖成分。 需要强调的是,F(r)(或 φ(r))中的旋转分量是二维相位解包中路径依赖的唯一来源。相位中的旋转成分是残差的原因。可…

C++从入门到精通——入门知识

1. C关键字(C98) C总计63个关键字&#xff0c;C语言32个关键字 2. 命名空间 在C/C中&#xff0c;变量、函数和后面要学到的类都是大量存在的&#xff0c;这些变量、函数和类的名称都将存在于全局作用域中&#xff0c;可能会导致很多冲突。使用命名空间的目的就是对标识符的名…

【Python系列】 yaml中写入数据

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

680.验证回文串II-力扣

680.验证回文串II-力扣 给你一个字符串 s&#xff0c;最多可以从中删除一个字符。 请你判断 s 是否能成为回文字符串&#xff1a;如果能&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false。 示例1&#xff1a; 输入&#xff1a;s “aba” 输出&#xff1a;true示…

自定义树形筛选选择组件

先上效果图 思路&#xff1a;刚开始最上面我用了el-input&#xff0c;选择框里面内容用了el-inputel-tree使用&#xff0c;但后面发现最上面那个可以输入&#xff0c;那岂不是可以不需要下拉就可以使用&#xff0c;岂不是违背了写这个组件的初衷&#xff0c;所以后面改成div自定…

STM32中启用 UART 的特定中断( __HAL_UART_ENABLE_IT函数)开机立即进入中断问题(HAL库)

学习过程中发现启用 UART 的特定中断功能之后&#xff0c;原本应该是等到空闲中断的标志位变化了再进入中断&#xff0c;结果MCU开机就会进入中断&#xff0c;不符合逻辑&#xff0c;所以尝试解决这个问题。 DMA空闲中断 处理 串口接收不定长数据 的文章见以下 原文链接&#…

把标注数据导入到知识图谱

文章目录 简介数据导入Doccano标注数据&#xff0c;导入到Neo4j寻求帮助 简介 团队成员使用 Doccano 标注了一些数据&#xff0c;包括 命名实体识别、关系和文本分类 的标注的数据&#xff1b; 工作步骤如下&#xff1a; 首先将标注数据导入到Doccano&#xff0c;查看一下标注…

LeetCode每日一题之专题一:双指针 ——复写零

复写零OJ链接&#xff1a;1089. 复写零 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 解法&#xff08;原地复写-双指针&#xff09;&#xff1a; 算法思路&#xff1a; 如果「从前向后」进⾏原地复写操作的话&#xff0c;由于 0 的出现会复写两次&#xff0c;导致…

鸿蒙开发之ArkTs开发布局之层叠布局(Stack)和弹性布局(Flex)

层叠布局&#xff08;Stack&#xff09; 层叠布局&#xff08;StackLayout&#xff09;用于在屏幕上预留一块区域来显示组件中的元素&#xff0c;提供元素可以重叠的布局。层叠布局通过Stack容器组件实现位置的固定定位与层叠&#xff0c;容器中的子元素&#xff08;子组件&…

技术揭秘:如何打造完美互动的充电桩硬件与服务平台?

充电桩平台全套源码地址 https://gitee.com/chouleng/cdzkjjh.git 这张图像是一个系统或服务的架构图。以下是对图中各个部分的描述&#xff1a; 前端&#xff1a; 位于图像的顶部&#xff0c;颜色为浅绿色。用户服务端&#xff1a; 紧邻前端&#xff0c;颜色为淡黄色。设备服…

【初阶数据结构】——leetcode:160. 相交链表

文章目录 1. 题目介绍2. 思路1&#xff1a;暴力求解算法思想代码实现 3. 思路2&#xff1a;快慢指针算法思想代码实现 1. 题目介绍 链接: link 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&…

OpenAI劲敌出手!Claude 3正式发布,全面超越GPT-4。Claude3模型特点和使用教程分享

已有GPT官方账号不会升级GPT4请参考&#xff1a;【国内如何用gpt4&#xff1f;如何升级gpt4&#xff1f;保姆级教程】 一、Claude震撼发布焦点分析 1.Claude震撼发布 北京时间2024年3月4日晚间&#xff0c;Anthropic&#xff0c;毫无预警地发布了最新一代大模型Claude 3&…

RuoYi-Vue若依框架-集成mybatis-plus报错Unknown column ‘search_value‘ in ‘field list‘

报错信息 ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column search_value in field list ### The error may exist in com/ruoyi/sales/mapper/ZcSpecificationsMapper.java (best guess) ### The error may involve defaultParameter…

32-2 APP渗透 - 移动APP架构

前言 app渗透和web渗透最大的区别就是抓包不一样 一、客户端: 反编译: 静态分析的基础手段,将可执行文件转换回高级编程语言源代码的过程。可用于了解应用的内部实现细节,进行漏洞挖掘和算法分析等。调试: 排查软件错误的一种手段,用于分析应用内部原理和行为。篡改/重打…

【python实战】--提取所有目录下所有Excel文件指定列数据

系列文章目录 文章目录 系列文章目录前言一、问题描述二、python代码1.引入库 总结 前言 一、问题描述 需要提取指定路径下所有excel文件中指定一列数据&#xff0c;汇总到新文件&#xff0c;&#xff08;逐列汇总&#xff09; 二、python代码 1.引入库 代码如下&#xff08…

66toolkit终极网络工具系统:470+强大Web工具,助力您的网络运营与开发

一、产品介绍 66toolkit&#xff0c;被誉为“终极网络工具系统”&#xff08;SAAS&#xff09;&#xff0c;是一款功能强大的PHP脚本。它集合了超过470种快速且易用的Web工具&#xff0c;为日常任务处理和开发人员提供了极大的便利。作为一款综合性的网络工具系统&#xff0c;…

【吊打面试官系列】Redis篇 -如果有大量的 key 需要设置同一时间过期,一般需要注意什么?

大家好&#xff0c;我是锋哥。今天分享关于 【如果有大量的 key 需要设置同一时间过期&#xff0c;一般需要注意什么&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 如果有大量的 key 需要设置同一时间过期&#xff0c;一般需要注意什么&#xff1f; 如果大量的…

ContEA论文翻译

Facing Changes: Continual Entity Alignment for Growing Knowledge Graphs 面对变化&#xff1a;不断增长的知识图谱的持续实体对齐 Abstract 实体对齐是知识图谱(KG)集成中一项基本且重要的技术。多年来&#xff0c;实体对齐的研究一直基于知识图谱是静态的假设&#xff…