JavaScript 综合案例—猜数字
预期效果
需求
- 完成基本的页面布局
- 在文本框输入数字后,点击"猜"按钮,结果那一行会显示"猜大了"或者"猜小了"
- 每猜一次,就会增加一次猜的次数
- 猜到数字后,结果显示要猜的数字
- 按"重新开始一局游戏"的按钮,之前的内容初始化
- 生成的数字随机
完整代码 |
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>猜数字小游戏</title><script src="js/jquery-3.7.1.min.js"></script>
</head>
<body><button id = "reset">重新开始一局游戏</button><br><span>请输入要的猜数字</span><input type="text" id="guessnumber"><button id = "guess">猜</button></br><span>已经猜的次数:</span> <span id = "count">0</span></br><span>结果</span> <span id = "result"></span><script>// 生成一个数字let number = Math.floor(Math.random() *100) + 1 ; // 生成 1 到 100 的数字console.log(number);// 计算猜数字的次数let count = 0;$("#guess").click(function(){count++ ;let guessnumber = $("#guessnumber").val();$("#count").text(count);if(number < guessnumber){$("#result").text("猜大了");$("#result").css("color" , "red");}else if(number > guessnumber){$("#result").text("猜小了");$("#result").css("color" , "red");}else{$("#result").text("猜对了");$("#result").css("color" , "green");}});$("#reset").click(function(){// 重新生成数字number = Math.floor(Math.random() *100) + 1 ; // 生成 1 到 100 的数字console.log(number);// 猜数字次数置为0count = 0;// 结果中的文本重新赋值为空白$("#result").text("");// 猜数字的次数重新置为 0,也就是此时的 count$("#count").text(count);// 把文本框中的内容赋值为空$("#guessnuber").val("");});</script>
</body>
</html>
第一步:写页面 |
第二步:随机生成一个1到100数字 |
<script>let number = Math.floor(Math.random()*100)+1 ;
</script>
Math.random()*100 表示随机生成一个 [0,99] 的数字,为了避免小数的存在,把生成的数字作为参数,调用 Math.floor() 方法,这个方法表示取整,再 +1 ,表示生成一个 [1, 100] 的数字;
第三步:完善"猜"按钮的功能 |
为了方便完善功能,我们先把随机生成的数字打印出来:
接下来,通过 jquery 的 id 选择器,选中"猜"这个按钮,并且完善点击按钮后的操作:
按按钮后,要执行的步骤如下:
- 要拿到文本框中输入的数字;
- 和生成的数字进行比较,把"猜大了"或者"猜小了"这两个文本返回到结果;
我们先为文本框设置 id 属性并赋值:
注意通过 ID 选择器选择对应的元素,再完善功能:
第四步:完善"猜的次数"对应的功能 |
第五步:设置"重新开始一局游戏"的按钮 |
感悟 |
值得一提:在第一次写猜数字小游戏的时候,我们很容易犯拼写错误:
例如煮啵上面的这个错误,导致下面的三次比较,guessnumber 这个数字都因为没有赋值,而导致无论输入什么数字,提示框都显示猜对了:
对于这种不易察觉的小错误,我们可以把代码交给 deepseek
,在它回答的过程中,给煮啵的提示就是 guessnuber 拼写错误
,瞬间就让煮啵豁然开朗,对于开发中遇到的错误,我们只要利用好 AI ,会帮我们节省大量的时间和精力!