基于js和html的骰子游戏

介绍:

  • 1.游戏者选择“大”时,三个骰子点数之和为11-18时,游戏者获胜。
  • 2.游戏者选择“小”时,三个骰子点数之和为3-10时,游戏者获胜。
  • 3.如果游戏者选择具体点数,则根据三个骰子的点数计算,如果与游戏者下注的点数相同,则游戏者获胜。
  • 4.玩家可以设置总数量,每次开始游戏,如果玩家胜利,总数量增加当前数量*倍率,反正减少。

html代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>骰子游戏</title><link rel="stylesheet" href="style.css"><!-- 确保您已经下载了layui并正确地链接了CSS文件 --><link rel="stylesheet" href="../../layui/css/layui.css" media="all"><style>.rules {list-style-type: none;padding: 0;}.rules li {margin-bottom: 10px;font-size: 16px;color: #333;}.game-rules {
/* 	       margin-top: 20px; */background-color: #f2f2f2;padding: 2%;border-radius: 4%;text-align: left;margin: 1% auto;}.game-center {text-align: center;margin: 2% auto;}</style>
</head>
<body style="min:auto"><div class="game-container layui-container"><h1 class="game-center">骰子游戏</h1><!-- 游戏规则区域 --><div><ul class="game-rules"><li>1.游戏者选择“大”时,三个骰子点数之和为11-18时,游戏者获胜。</li><li>2.游戏者选择“小”时,三个骰子点数之和为3-10时,游戏者获胜。</li><li>3.如果游戏者选择具体点数,则根据三个骰子的点数计算,如果与游戏者下注的点数相同,则游戏者获胜。</li><li>4.玩家可以设置总数量,每次开始游戏,如果玩家胜利,总数量增加当前数量*倍率,反正减少</li>
<!-- 				<li>4.如果三个骰子点数相同,则为庄家胜利。</li> --></ul></div><!-- 赌注区域 --><div  style="margin: 2% 30%;"><p style="margin-top: 2%;">&nbsp&nbsp&nbsp&nbsp总数量:<input type="number" id="wallet-amount" placeholder="总数量"></p><p style="margin-top: 2%;">当前数量:<input type="number" id="bet-amount" placeholder="当前数量"></p><p style="margin-top: 2%;">&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp倍率:<input type="number" id="multiplier" placeholder="请输入倍数" value="1"></p></div><!-- 游戏操作区 --><div class="game-operations" style="margin: 2% 25%;"><button class="layui-btn layui-btn-primary layui-border-orange" id="btn-big">大</button><button class="layui-btn layui-btn-primary layui-border-black" id="btn-small">小</button><input 	class="layui-btn layui-btn-primary " type="number" placeholder="输入数字" min="3" max="18" id="input-number" title="请输入数字" /><button class="layui-btn layui-btn-primary layui-border-green" id="btn-guess">猜数字</button></div><!-- 结果显示区 --><div id="result" class="game-result"  style="margin: 2% 25%;"></div></div><!-- 确保您已经下载了layui.js 并正确链接 -->
<!--    <script src="path-to-your-layui.js"></script> -->
</body>
<script src="../gamejs/size.js"></script>
</html>	

js代码(size.js)

document.getElementById('btn-big').addEventListener('click', function() {playGame('big');
});document.getElementById('btn-small').addEventListener('click', function() {playGame('small');
});document.getElementById('btn-guess').addEventListener('click', function() {const guessNumber = parseInt(document.getElementById('input-number').value, 10);if(guessNumber && guessNumber >= 3 && guessNumber <= 18) {playGame(guessNumber);} else {alert('请输入一个有效的数字(3-18之间)!');}
});function playGame(choice) {const walletAmount = parseFloat(document.getElementById('wallet-amount').value);const betAmount = parseFloat(document.getElementById('bet-amount').value);const multiplier = parseFloat(document.getElementById('multiplier').value);if (isNaN(walletAmount) || isNaN(betAmount) || isNaN(multiplier)) {alert('请输入有效的数值!');return;}if (walletAmount <= 0) {alert('钱包金额不能小于等于零!');return;}const diceResults = rollDice();const total = diceResults.reduce((a, b) => a + b);let result;let newWalletAmount;if (typeof choice === 'string') {if (choice === 'big' && total >= 11 && total <= 18) {result = '恭喜你,你赢了!';resultColor = 'red';resultWeight = 'bold';newWalletAmount = walletAmount + (betAmount * multiplier);} else if (choice === 'small' && total >= 3 && total <= 10) {result = '恭喜你,你赢了!';resultColor = 'red';resultWeight = 'bold';newWalletAmount = walletAmount + (betAmount * multiplier);}  else {result = '很遗憾,你输了';resultColor = 'black';resultWeight = 'bold';newWalletAmount = walletAmount - (betAmount * multiplier);}} else {if (total === choice) {result = '恭喜你,你赢了!';resultColor = 'red';resultWeight = 'bold';newWalletAmount = walletAmount + (betAmount * multiplier);} else {result = '很遗憾,你输了';resultColor = 'black';resultWeight = 'bold';newWalletAmount = walletAmount - (betAmount * multiplier);}}if (newWalletAmount < 0) {// alert('很遗憾,你的钱包金额不足!');// return;}const resultElement = document.getElementById('result');//字体颜色resultElement.style.color = resultColor;resultElement.style.fontWeight = resultWeight;resultElement.innerText = `骰子点数: ${diceResults.join(', ')} 总数: ${total}. ${result}`;document.getElementById('wallet-amount').value = newWalletAmount.toFixed(2);
}function displayDiceResults(results, element, index, total) {if (index < results.length) {setTimeout(() => {if (index === results.length - 1) {element.innerText += `${results[index]} `;element.innerText += `总数: ${total}. `;} else {element.innerText += `${results[index]}, `;}displayDiceResults(results, element, index + 1, total);}, 500);}
}// 其他部分保持不变function rollDice() {return [1, 2, 3].map(() => Math.floor(Math.random() * 6) + 1);
}

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

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

相关文章

Linux 安装Jupyter notebook 并开启远程访问

文章目录 安装Python安装pip安装Jupyter启动Jupyter Notebook1. 生成配置文件2. 创建密码3. 修改jupyter notebook的配置文件4. 启动jupyter notebook5. 远程访问jupyter notebook 安装Python 确保你的系统上已经安装了Python。大多数Linux发行版都预装了Python。你可以在终端…

【深度学习-图像分类】02 - AlexNet 论文学习与总结

论文地址&#xff1a;ImageNet Classification with Deep Convolutional Neural Networks 论文学习 1. 摘要 本研究训练了一个大型深度卷积神经网络&#xff08;CNN&#xff09;&#xff0c;用于对ImageNet LSVRC-2010比赛中的1.2百万高分辨率图像进行分类&#xff0c;这些图…

MYSQL 深入探索系列六 SQL执行计划

概述 好久不见了&#xff0c;近期一直在忙项目的事&#xff0c;才有时间写博客&#xff0c;近期频繁出现sql问题&#xff0c;今天正好不忙咱们看看千万级别的表到底该如何优化sql。 案例 近期有个小伙伴生产环境收到了告警&#xff0c;有个6千万的日志表&#xff0c;查询耗时大…

“undefined reference to XXX“问题总结

"undefined reference to XXX"问题总结 引言 我们在Linux下用C/C工作的时候&#xff0c;经常会遇到"undefined reference to XXX"的问题&#xff0c;直白地说就是在链接(从.cpp源代码到可执行的ELF文件&#xff0c;要经过预处理->编译->链接三个阶…

1panel使用指南(一)面板安装

一、1panel简介 1Panel是杭州飞致云信息科技有限公司推出的产品 [1]&#xff0c;帮助用户实现快速建站。 [2]是一款现代化、开源的Linux服务器运维管理面板&#xff0c;于2023年3月推出&#xff0c;深度集成WordPress和Halo&#xff0c;一键完成域名绑定、SSL证书配置等操作&a…

draw.io学习笔记

1、链接 1.1、自动连接图形 鼠标放在图形上&#xff0c;点击出现的箭头&#xff0c;会自动出常用图形 1.2、固定连接 如果拖动其中一个图形的话&#xff0c;固定链接的形状会是曲线连过去。 方法&#xff1a;不要点击左边图形鼠标放在边框上面左边出现绿圆点鼠标左键点击图形的…

【Linux】深度解剖环境变量

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟悉并掌握Linux的环境变量。 > 毒鸡汤&#x…

LeetCode刷题--- 单词搜索

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​​http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述…

LLM之RAG实战(十一)| 使用Mistral-7B和Langchain搭建基于PDF文件的聊天机器人

在本文中&#xff0c;使用LangChain、HuggingFaceEmbeddings和HuggingFace的Mistral-7B LLM创建一个简单的Python程序&#xff0c;可以从任何pdf文件中回答问题。 一、LangChain简介 LangChain是一个在语言模型之上开发上下文感知应用程序的框架。LangChain使用带prompt和few-…

CENTOS docker拉取私服镜像

概述 docker的应用越来越多&#xff0c;安装部署越来越方便&#xff0c;批量自动化的镜像生成和发布都需要docker镜像的拉取。 centos6版本太老&#xff0c;docker的使用过程中问题较多&#xff0c;centos7相对简单容易。 本文档主要介绍centos系统安装docker和拉取docker私…

一文了解无线通信 - NB-IOT、LoRa

NB-IOT、LoRa 目录概述需求&#xff1a; 设计思路实现思路分析 NB-IOT1.LoRa2.区别 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,chall…

简单了解SQL堆叠注入与二次注入(基于sqllabs演示)

1、堆叠注入 使用分号 ; 成堆的执行sql语句 以sqllabs-less-38为例 ?id1 简单测试发现闭合点为单引号 ?id1 order by 3 ?id1 order by 4使用order by探测发现只有三列&#xff08;字段数&#xff09; 尝试简单的联合注入查询 ?id-1 union select 1,database(),user()-…

开放网络+私有云=?星融元的私有云承载网络解决方案实例

在全世界范围内的云服务市场上&#xff0c;开放网络一直是一个备受关注的话题。相比于传统供应商的网络设备&#xff0c;开放网络具备软硬件解耦、云原生、可选组件丰富等优势&#xff0c;对云服务商和超大型企业有足够的吸引力。 SONiC作为开源的网络操作系统&#xff0c;使得…

uni-app uni-app内置组件

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

【JS笔记】JavaScript语法 《基础+重点》 知识内容,快速上手(二)

数组 什么是数组&#xff1f; 字面理解就是 数字的组合 其实不太准确&#xff0c;准确的来说数组是一个 数据的集合 也就是我们把一些数据放在一个盒子里面&#xff0c;按照顺序排好 [1, 2, 3, hello, true, false]这个东西就是一个数组&#xff0c;存储着一些数据的集合 …

python测试工具: 实现数据源自动核对

测试业务需要&#xff1a; 现有A系统作为下游数据系统&#xff0c;上游系统有A1,A2,A3... 需要将A1,A2,A3...的数据达到某条件后&#xff08;比如&#xff1a;A1系统销售单提交出库成功&#xff09;自动触发MQ然后再经过数据清洗落到A系统&#xff0c;并将清洗后数据通过特定…

css 用多个阴影做出光斑投影的效果 box-shadow

css 用多个阴影做出光斑投影的效果 box-shadow 你首先需要知道的一点是 box-shadow 可以接收多个值&#xff0c;也就是可以设置多个阴影&#xff0c;这样就可以做一个类似光斑投影的效果。 一、效果 二、代码 里面用到了我一些 scss 工具方法&#xff0c;不过不影响&#xf…

Linux升级指南:保持系统安全和高效运行

Linux系统的升级是确保系统稳定和安全性的重要步骤。本文将介绍Linux系统升级的基本概念&#xff0c;以及具体的操作步骤和注意事项&#xff0c;以帮助用户顺利升级他们的Linux系统。 Linux操作系统以其稳定性和可定制性而闻名&#xff0c;它经常通过升级来提供新的功能、修复漏…

秒杀系统的设计思路(应对高并发,超卖等问题的解决思路)

首先我们先看一下设计秒杀系统时&#xff0c;我们应该考虑的问题。 解决方案&#xff1a; 一.页面静态化结合CDN内容分发 前端把能提前放入cdn服务器的东西都放进去&#xff0c;反正把所有能提升效率的步骤都做一下&#xff0c;减少真正秒杀时候服务器的压力。 秒杀活动的页面…

九州金榜|家庭教育中如何培养优秀的孩子

家庭是孩子心中最大的底气&#xff0c;而家庭的形态也就构成孩子未来的模样。所以给为孩子提供最好的教育&#xff0c;就是为孩子创建一个学习气氛浓厚&#xff0c;成员关系美满的家庭&#xff0c;它会成孩子成长道路上最大的助力&#xff0c;最温暖的港湾。 北京大学校长蔡元培…