用Html和js和layui写一个简单猜拳小游戏

      简单学习技术,写了一个小游戏,用html和js写一个简单的小游戏。玩家点击按钮出拳,玩家胜利结果显示绿色,玩家输了结果显示红色,平局结果显示蓝色

页面效果:

代码:

<!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="../layui/css/layui.css" media="all">
<style>
/* 添加样式以中心布局两个游戏并增加一些间距 */
.game-container {
  text-align: center;
  margin: 5% auto;
}

.game-container > button {
  margin: 0 5px; /* 添加按钮间距 */
}

#result, #message {
  margin: 20px 0;
}

</style>
</head>
<body>
  <div class="game-container">
    <h1>石头、剪刀、布 小游戏</h1>
    <div id="choices">
      <button onclick="play('石头')" class="layui-btn layui-btn-primary layui-border-blue">石头</button>
      <button onclick="play('布')" class="layui-btn layui-btn-primary layui-border-orange">布</button>
      <button onclick="play('剪刀')" class="layui-btn layui-btn-primary layui-border-green">剪刀</button>
    </div>
    <div id="result"></div>
  </div>
  

  <script src="./gamejs/game.js"></script>
</body>
</html>
html解析:

1. `<!DOCTYPE html>`: 声明文档类型为 HTML5,告诉浏览器使用 HTML5 规范来解析页面。

2. `<html lang="en">`: HTML 标签,指定页面语言为英语。

3. `<head>`: 页面头部,包含了文档的元信息和引用的外部资源。

  • `<meta charset="UTF-8">`: 声明文档使用 UTF-8 字符集编码。
  • `<meta name="viewport" content="width=device-width, initial-scale=1.0">`: 设置移动设备的视口大小,并且使用 1:1 的比例放大。
  • `<title>石头、剪刀、布 小游戏</title>`: 设置页面标题为“石头、剪刀、布 小游戏”。
  • `<link rel="stylesheet" href="../layui/css/layui.css" media="all">`: 引入外部样式表 layui.css,用于页面样式。

4. `<style>`: 内联样式,用于定义页面元素样式。

  • `.game-container`: 设置游戏容器样式为居中布局,并增加一些间距。
  • `.game-container > button`: 设置游戏按钮之间的间距。
  •  `#result, #message`: 设置结果和信息显示区域的样式。

5. `<body>`: 页面主体内容。

  • `<div class="game-container">`: 游戏容器,包含了游戏标题、游戏选项按钮和结果显示区域。
  • `<h1>石头、剪刀、布 小游戏</h1>`: 游戏标题。
  • `<div id="choices">`: 游戏选项按钮容器。
  • `<button οnclick="play('石头')" class="layui-btn layui-btn-primary layui-border-blue">石头</button>`: 选择石头的按钮,点击后执行 play 函数。
  • `<button οnclick="play('布')" class="layui-btn layui-btn-primary layui-border-orange">布</button>`: 选择布的按钮,点击后执行 play 函数。
  • `<button οnclick="play('剪刀')" class="layui-btn layui-btn-primary layui-border-green">剪刀</button>`: 选择剪刀的按钮,点击后执行 play 函数。
  •  `<div id="result"></div>`: 结果显示区域,用于显示游戏结果。

6. `<script src="./gamejs/game.js"></script>`: 引入外部 JavaScript 文件 game.js,用于实现游戏逻辑。

Js实现(game.js):

function play(playerChoice) {
    var choices = ['石头', '布', '剪刀']; // 可选择的选项
    var computerChoice = choices[Math.floor(Math.random() * 3)]; // 电脑随机选择
    var result;

    if (playerChoice === computerChoice) {
        result = '平手!';
		 document.getElementById('result').style.color = "blue"; // 玩家输时文字变成红色
    } else if (
        (playerChoice === '石头' && computerChoice === '剪刀') ||
        (playerChoice === '剪刀' && computerChoice === '布') ||
        (playerChoice === '布' && computerChoice === '石头')) {
        result = '你赢了!';
        document.getElementById('result').style.color = "green"; // 玩家赢时文字变成绿色
    } else {
        result = '你输了!';
        document.getElementById('result').style.color = "red"; // 玩家输时文字变成红色
    }

    // 显示结果
    document.getElementById('result').innerHTML = `
		<div  style="margin-left: 0%;margin-top: 1%;">
			<span style="font-size:20px; font-style:normal;font-family:'宋体';color:#000000">你的选择: ${playerChoice} </span>
			<br>
			<span style="font-size:20px; font-style:normal;font-family:'宋体';color:#000000">电脑的选择: ${computerChoice} </span>
			<br>
			<span style="font-size:20px; font-style:normal;font-family:'宋体';">结果:${result}  </span>
		</div>
    `;
}
js解析:
  1. function play(playerChoice) { ... }: 定义了一个名为 play 的函数,接受玩家选择的选项作为参数。

  2. var choices = ['石头', '布', '剪刀'];: 创建一个包含可选择的选项的数组。

  3. var computerChoice = choices[Math.floor(Math.random() * 3)];: 通过随机数生成电脑的选择,即从 choices 数组中随机选择一个选项作为电脑的选择。

  4. var result;: 声明一个变量 result 用于存储游戏结果。

  5. 根据玩家和电脑的选择进行判断,更新结果和结果展示区域的文字颜色:

    • 如果玩家和电脑选择相同,将结果设为平手,并将结果文字颜色设置为蓝色。
    • 如果玩家胜利,将结果设为“你赢了!”,并将结果文字颜色设置为绿色。
    • 如果玩家失败,将结果设为“你输了!”,并将结果文字颜色设置为红色。
  6. 使用 document.getElementById('result').innerHTML 更新结果展示区域的内容,根据游戏结果和玩家与电脑的选择,动态生成展示的文本内容,并设置对应的字体样式和颜色。

目录结构:

效果:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

低代码平台快速开发CRM 可灵活自定义的CRM软件

白码低代码平台以其简化和加速应用程序开发的方法而闻名&#xff0c;无需大量编写代码&#xff0c;只需通过可视化界面和配置来构建应用程序。在快速开发CRM方面&#xff0c;白码低代码平台具有许多优势和应用。 白码低代码平台快速搭建CRM 快速开发是白码低代码平台的一大优势…

最新AI系统ChatGPT网站系统源码,Midjourney绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图+思维导图一站式解决方案

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

MD5算法

一、引言 MD5&#xff08;Message-Digest Algorithm 5&#xff09;是一种广泛应用的密码散列算法&#xff0c;由Ronald L. Rivest于1991年提出。MD5算法主要用于对任意长度的消息进行加密&#xff0c;将消息压缩成固定长度的摘要&#xff08;通常为128位&#xff09;。在密码学…

算法设计与分析期末上机板子——课内题目题意与题解分析+课外知识点总结!

真正的模板&#xff01;&#xff01;&#xff01; 文章目录 课内堆实现C语言矩阵连乘E1D连分数计算C3A-钢管切割&#xff1a;动态规划C3C-流水线调度&#xff1a;动态规划C3E-矩阵连乘效率&#xff1a;区间动态规划C3F-导弹轰炸&#xff08;小偷问题&#xff09;&#xff1a;动…

flutter dio使用proxyman抓包进行网络调试

证书 wifi 手机和电脑连上同一个wifi&#xff0c;并且手机wifi使用代理&#xff0c;代理地址为电脑的ip和proxyman设置的监听端口 代码 import package:dio/dio.dart; import package:dio/io.dart; import dart:io;class ProxyUtil {static String proxyIP "";st…

MySQL GTID 主从错误

错误 搭建主从出现以下错误 Last_IO_Error: The replication receiver thread cannot start because the master has GTID_MODE OFF and this server has GTID_MODE ON. 原因 MySQL主从的 Master 和 Slave 必须 同时开启或者关闭 enforce-gtid-consistency和 gtid-mode 功能…

Centos如何修改ssh端口

想必很大一部分的同学用的是centos服务器&#xff0c;对于默认的22端口存在一定的安全风险&#xff0c;所以今天我们一起看下如何修改ssh端口 一、什么是SSH SSH&#xff08;Secure Shell&#xff09;是一种安全的远程登录协议&#xff0c;它允许您通过网络远程连接到Linux系统…

YOLOv5改进 | 2023主干篇 | 华为最新VanillaNet主干替换Backbone实现大幅度长点

一、本文介绍 本文给大家来的改进机制是华为最新VanillaNet网络&#xff0c;其是今年最新推出的主干网络&#xff0c;VanillaNet是一种注重极简主义和效率的神经网络架构。它的设计简单&#xff0c;层数较少&#xff0c;避免了像深度架构和自注意力这样的复杂操作(需要注意的是…

docker中部署mysql

原文链接&#xff1a; Docker 安装mysql8.0_docker安装mysql8.0-CSDN博客 1&#xff1a;拉取mysql镜像 docker pull mysql:8.0指定8.0版本的&#xff0c;因为我之前装的是5.6&#xff0c;不支持窗口函数&#xff0c;8版本之后的才支持&#xff0c;所以更换版本。 2&#xf…

C# WPF上位机开发(报表导出)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于在工厂上班的小伙伴来说&#xff0c;导出生产数据、生成报表&#xff0c;这是很习以为常的一个工作。之前的文章中&#xff0c;虽然我们也介绍…

格密码:隐藏超平面问题与uSVP问题 (Ajtai密码)

目录 一. 技术发展 二. 隐藏超平面问题&#xff08;hidden hyperplanes problem,HHP&#xff09; 三. 唯一最短向量问题&#xff0c;unique shortest vector problem&#xff0c;uSVP 四. Ajtai-Dwork密码系统&#xff08;改进版&#xff09; 4.1 公钥 4.2 私钥 4.3 加密…

Serverless架构:无服务器应用与AWS Lambda-读书笔记

Serverless架构&#xff1a;无服务器应用与AWS Lambda-读书笔记 好的架构可以成就软件&#xff0c;缺乏架构则会破坏软件。 一、Serverless 架构的来龙去脉 在典型的Web应用程序中&#xff0c;服务器接受前端的HTTP请求并处理请求。在保存到数据库之前&#xff0c;数据可能会…

<JavaEE> TCP 的通信机制(六) -- 异常情况处理 和 总结

目录 十、异常情况处理 1&#xff09;进程崩溃终止 2&#xff09;主机正常关机 3&#xff09;机器掉电/网络断开 1> 接收端掉线 2> 发送端掉线 TCP 通信机制 总结 阅读指针 -> 《 TCP 的通信机制 -- 延时应答、捎带应答、面向字节流 》&#xff1c;JavaEE&…

如何使用mac电脑,1、使用快捷命令打开访达,2、使用终端命令创建文件,3、使用命令打开创建的文件,并且在vscode中打开

如何使用mac电脑 1、使用快捷命令打开访达 optioncommand空格键 快速进入访达 shiftcmmandn 创建一个空目录 2、使用终端命令创建文件 2.1进入文件夹 在终端页面输入“cd /Users/yunf/Desktop/”并按回车键&#xff08;此时进入到桌面文件夹&#xff0c;如果需要进入到其它…

Qt(二):使用udp发送与接收图片

使用Qt来通过UDP协议发送和接收图片可以分为几个步骤。以下是一个基本的指南&#xff1a; 发送图片准备图片数据&#xff1a;首先&#xff0c;你需要将图片转换为可以在网络上传输的数据格式。通常&#xff0c;这涉及到将图片转换为字节数组。设置UDP套接字&#xff1a;在Qt中…

html-css-js移动端导航栏底部固定+i18n国际化全局

需求&#xff1a;要做一个移动端的仿照小程序的导航栏页面操作&#xff0c;但是这边加上了i18n国家化&#xff0c;由于页面切换的时候会导致国际化失效&#xff0c;所以写了这篇文章 1.效果 切换页面的时候中英文也会跟着改变&#xff0c;不会导致切换后回到默认的语言 2.实现…

Linux 查看系统类型和版本(内核版本 | 发行版本)

Linux 查看系统类型和版本 首先普及下linux系统的版本内容1. 查看linux系统内核版本2. 查看linux系统发行版本 首先普及下linux系统的版本内容 内核版本和发行版本区别 内核版本就是指 Linux 中最基层的代码&#xff0c;版本号如 Linux version 3.10.0-327.22.2.el7.x86_64发行…

docker compose 部署 grafana + loki + vector 监控kafka消息

Centos7 随笔记录记录 docker compose 统一管理 granfana loki vector 监控kafka 信息。 当然如果仅仅是想通过 Grafana 监控kafka&#xff0c;推荐使用 Grafana Prometheus 通过JMX监控kafka 目录 1. 目录结构 2. 前提已安装Docker-Compose 3. docker-compose 自定义服…

论文降重同义词替换的效果评估与优化建议 papergpt

大家好&#xff0c;今天来聊聊论文降重同义词替换的效果评估与优化建议&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 标题&#xff1a;论文降重同义词替换的效果评估与优…

华为鸿蒙应用--登录页:网络请求、自定义Loading、MD5密码加密、emitter订阅状态变化、持久化登录状态、隐藏软键盘-ArkTs

HarmonyOS系列 华为鸿蒙应用--底部导航栏Tabs&#xff08;自适应手机和平板&#xff09;-ArkTs_华为鸿蒙应用 csdn 底部导航栏-CSDN博客 华为鸿蒙应用--欢迎页SplashPage倒计时跳过&#xff08;自适应手机和平板&#xff09;-ArkTs_app.media.ic_splash_page_background-CSDN…
最新文章