猜数字游戏
创作时间:
作者:
@小白创作中心
猜数字游戏
引用
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的基础知识,还能增加编程的乐趣。
热门推荐
研究证实:高纤维和益生菌饮食可降低特应性皮炎和屋尘螨过敏风险
人民币强势回升!美元疲软叠加经济基本面改善,人民币有望维持稳定
柿子季来袭,养生新潮流!中医视角下的“柿界”大揭秘
最适合初入冬季吃的十种水果,天冷也能水果自由啦
人民币升值背景下的理财攻略:机遇与风险并存
2025年人民币汇率走势:在挑战中寻求稳定
人民币汇率破7:中国股市的新风向标?
高盛预测2025年人民币将贬至7.5,市场反应如何?
高考语文句子分类解题秘籍大揭秘!
哮喘病怎么治
橙子冻了还能吃吗?冻橙子的正确处理方法
2025年中国稀土产量、进出口及发展趋势
全球稀土产业现状与趋势:供应过剩、价格低迷,各国如何应对?
北京文化深度游:颐和园、恭王府、天坛三大景点全攻略
冬季健身新宠:丰家铺广场舞
澶渊之盟的签订,与北宋灭亡有必然的联系吗?
澶渊之盟:和平的代价与智慧
普通人如何配置自己的全天候投资组合
用动量去增强全天候组合
为啥两人老吵架?找原因寻办法,让关系少些争吵
朱家铺广场舞:社区新宠还是噪音制造者?
北京交管局:后排乘客不系安全带将被罚200元?真相来了!
安全带不系就罚?教你正确系法避罚款!
养生专家推荐:简单易学的健康饮食食谱
冬季防疫,吃枸杞提升全家免疫力
华夏食养甄推荐:饮食调理的十大养生秘诀
亚裔青少年如何应对歧视带来的心理压力?
自制酸汤鱼的做法:家庭版美味佳肴
写春联的10大讲究,别出笑话了
幽门螺杆菌感染的食谱推荐