猜数字游戏
创作时间:
作者:
@小白创作中心
猜数字游戏
引用
CSDN
等
12
来源
1.
https://blog.csdn.net/2201_75813676/article/details/139023434
2.
https://blog.csdn.net/2201_75396384/article/details/136819089
3.
https://codesign.qq.com/hc/article/front-end-animation-introduction/
4.
https://blog.csdn.net/m0_57344393/article/details/136109712
5.
http://www.runoob.com/w3cnote/js-random.html
6.
https://docs.pingcode.com/baike/3862330
7.
https://developer.mozilla.org/zh-CN/docs/Web/Performance/CSS_JavaScript_animation_performance
8.
https://developer.mozilla.org/zh-CN/docs/Learn_web_development/Core/Scripting/A_first_splash
9.
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/random#%E5%B0%9D%E8%AF%95%E4%B8%80%E4%B8%8B
10.
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/random
11.
http://www.yxfzedu.com/article/9225
12.
https://docs.pingcode.com/baike/2314637
在这个教程中,我们将使用HTML、CSS和JavaScript开发一个简单的网页版猜数字游戏。这个游戏的目标是让玩家在1到100之间猜测一个由程序随机生成的数字。每次猜测后,系统会提示玩家猜得太高、太低还是正好猜中,并实时更新尝试次数。
HTML结构
首先,我们需要搭建基本的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="styles.css">
</head>
<body>
<h1>猜数字游戏</h1>
<p>请输入一个1-100之间的数字:</p>
<input type="number" id="userGuess" min="1" max="100">
<br>
<button id="submitGuess">提交</button>
<p id="resultMessage"></p>
<p id="attemptCount"></p>
<ul id="guessHistory"></ul>
<button id="resetGame">再来一次</button>
<script src="script.js"></script>
</body>
</html>
CSS样式
接下来,我们添加一些基本的CSS样式来美化界面:
body {
font-family: Arial, sans-serif;
text-align: center;
background-color: #f0f8ff;
}
h1 {
color: #333;
}
input {
width: 100px;
height: 30px;
font-size: 16px;
margin: 10px;
}
button {
background-color: #4CAF50;
color: white;
padding: 10px 20px;
font-size: 16px;
border: none;
cursor: pointer;
margin: 10px;
}
button:hover {
background-color: #45a049;
}
#resultMessage {
color: red;
font-weight: bold;
}
#guessHistory {
margin-top: 20px;
}
JavaScript功能
现在,我们来实现核心的JavaScript功能:
// 生成1-100之间的随机数
const targetNumber = Math.floor(Math.random() * 100) + 1;
let attempts = 0;
const historyList = document.getElementById('guessHistory');
// 处理用户提交的猜测
document.getElementById('submitGuess').addEventListener('click', function() {
const userGuess = parseInt(document.getElementById('userGuess').value);
attempts++;
if (isNaN(userGuess) || userGuess < 1 || userGuess > 100) {
document.getElementById('resultMessage').textContent = '请输入一个有效的数字(1-100)';
return;
}
let message = '';
if (userGuess === targetNumber) {
message = `恭喜你,猜对了!答案就是${targetNumber}。你总共尝试了${attempts}次。`;
document.getElementById('submitGuess').disabled = true;
} else if (userGuess < targetNumber) {
message = '太低了,再试试!';
} else {
message = '太高了,再试试!';
}
document.getElementById('resultMessage').textContent = message;
document.getElementById('attemptCount').textContent = `尝试次数:${attempts}`;
const li = document.createElement('li');
li.textContent = `第${attempts}次猜测:${userGuess} - ${message}`;
historyList.appendChild(li);
document.getElementById('userGuess').value = '';
});
// 重置游戏
document.getElementById('resetGame').addEventListener('click', function() {
location.reload();
});
动画效果(可选)
为了增加趣味性,我们可以在玩家猜对数字时添加一个简单的动画效果:
function animateCorrectGuess() {
const resultElement = document.getElementById('resultMessage');
let opacity = 1;
const timer = setInterval(() => {
if (opacity <= 0.1) {
clearInterval(timer);
}
resultElement.style.opacity = opacity;
opacity -= opacity * 0.1;
}, 200);
}
// 在猜对时调用动画函数
if (userGuess === targetNumber) {
message = `恭喜你,猜对了!答案就是${targetNumber}。你总共尝试了${attempts}次。`;
document.getElementById('submitGuess').disabled = true;
animateCorrectGuess();
}
测试与优化
最后,我们需要测试游戏的所有功能,确保:
- 输入验证:只接受1-100之间的有效数字
- 反馈信息:正确显示猜大、猜小或猜对的提示
- 尝试次数:准确记录并显示
- 历史记录:正确保存每次猜测
- 重置功能:点击“再来一次”按钮后能重新开始游戏
通过以上步骤,我们就完成了一个简单的网页版猜数字游戏。这个游戏不仅适合初学者练习HTML、CSS和JavaScript的基础知识,还能增加编程的乐趣。
热门推荐
全面指南:珠海出发至云南各地更优路线及旅行攻略
如何了解股市的收费标准?这些收费标准有哪些变化?
如何了解证券交易的费用结构?这些费用对投资策略有何影响?
甲亢患者的饮食指南:哪些食物有助于病情恢复?
如何提升团队的数据质量
心如止水:培养内在定力的修身之道
如何成功申请融资展期?这种展期的审批标准是什么?
个人贷款展期的申请条件有哪些?
VMware虚拟机如何调中文
期权行权收益如何计算?影响行权收益的主要因素有哪些?
大姜:DAO组织实践-去中心化自治企业的治理与挑战
考研心情焦虑怎么办?专业医生给出6大实用建议
维A酸软膏怎么用?4个正确使用TIPS避免爆皮
如何查找Web信息:实用指南与技巧
正压式空气呼吸器检测服务
2026年考研的考试大纲在哪里可以找到?详尽指南
神经元的功能有什么
个人养老保险如何提取出来
养老保险可以取出来吗?取出条件及流程详解
清朝晚期,为什么成为半殖民地半封建社会?
医疗合同违约条款如何约定?违约金怎么算?
如何分析公司的负债结构:洞悉企业偿债能力的关键
面试结束时,你应该问这 11 个问题
影像科普:冠脉造影&冠脉CTA适应症选择
LQR优化控制
张国荣8部绝世好作,每部都口碑爆表,哪部都值得你连刷三遍
中企出海观察:上海国际金融中心如何“护航”企业“高水平走出去”?
打造“希望之城”,上海与青年何以双向赋能?
河北、河南、河东、河西、河洛、河内、河套、河曲在哪?一文看懂
五种运动保护心脏,让你的心脏更健康