当前位置: 首页 > news >正文

猜数字小游戏

前言

猜数字游戏是一款经典且简单的互动游戏,常常用于提高逻辑思维能力和锻炼数学技巧。本文将深入探讨一段用 JavaScript 编写的猜数字游戏代码,帮助读者理解游戏的基本逻辑和实现方法。这段代码不仅适合初学者练习编程技巧,也是了解用户交互的重要示例。

概要

在这段 JavaScript 代码中,我们实现了一个基本的猜数字游戏,具体功能如下:

  1. 随机数生成:游戏开始时,程序随机生成一个 1 到 100 之间的整数,作为用户需要猜测的目标数字。
  2. 用户输入:通过 prompt 函数,用户可以输入他们的猜测,系统会根据用户的输入进行反馈。
  3. 反馈机制:游戏会根据用户的猜测给出相应的提示,包括“你猜大了”、“你猜小了”或者“恭喜你,猜对了”。用户最多可以进行 100 次猜测,或在任何时刻选择退出游戏。
  4. 输入有效性检查:虽然代码简单易懂,仍可在后续版本中加入更严格的输入有效性检查,确保用户输入符合预期。

以下是一个代码小事例,有函数和for循环两种方法,可分别注释(for循环已注释) 

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>猜数字小游戏</title></head><body><script>// 用函数实现猜数字alert("亲,请在1~100之内猜个数字哦");function guessNumber() {let num = Math.floor(Math.random() * 100) + 1; // 生成随机数console.log(num); // 在控制台输出随机数,方便调试while (true) { // 使用 while 循环替代 for 循环let guess = prompt("猜猜是什么数字,最小值1,最大值100");if (guess === null) {alert("游戏结束啦");break; // 用户点击取消,退出游戏}guess = Number(guess); // 将输入的字符串转换为数字if (guess < 1 || guess > 100 || isNaN(guess)) {alert("请输入一个有效的数字(1~100)"); // 检查输入是否在有效范围内} else if (guess > num) {alert("好遗憾,你猜大了,再试一下吧");} else if (guess < num) {alert("真遗憾,你猜小了,再试一下吧");} else {alert("恭喜猜对啦,你真帅");break; // 猜对了,退出循环}}}guessNumber();// 用for循环实现猜数字// 随机生成1-100的数字let num = Math.floor(Math.random() * 100) + 1;// 提示用户猜数字alert("亲,请在1~100之内猜个数字哦");// 使用for循环进行最多100次的猜测for (let i = 0; i < 100; i++) {// 提示用户输入猜测的数字let guess = prompt("猜猜是什么数字,最小值1,最大值100");// 检查用户是否点击了取消按钮if (guess === null) {alert("游戏结束啦");break; // 结束游戏}// 将用户输入的字符串转换为数字guess = Number(guess);// 检查用户的猜测是否大于随机生成的数字if (guess > num) {alert("你猜大了,再试一下吧");}// 检查用户的猜测是否小于随机生成的数字else if (guess < num) {alert("你猜小了,再试一下吧");}// 如果猜测正确else {alert("恭喜你!猜对啦,你真是太棒了!");// 猜对了退出循环break;}}</script></body>
</html>

结尾

通过本文,我们分析了一个简单但有趣的猜数字游戏代码的实现。此游戏不仅有助于编程初学者熟悉基本的 JavaScript 语法和控制结构,同时也是与用户进行交互的良好示例。随着学习的深入,读者可以在此基础上进行扩展和改进,例如增加难度选择、记录历史猜测或完善用户界面。编写此类游戏可以激发创造力,提升编程技能,并为后续更复杂的项目打下坚实的基础。希望通过这篇文章,您能对编程有更深的理解与热爱,期待您的下一次编程冒险!

http://www.lryc.cn/news/460998.html

相关文章:

  • 在Windows上搭建ChatTTS:从本地部署到远程AI音频生成全攻略
  • 如何用好 CloudFlare 的速率限制防御攻击
  • Unity3D 立方体纹理与自制天空盒详解
  • 【工具】VSCODE下载,配置初次设置
  • vue使用jquery的ajax,页面跳转
  • 基于微信小程序的社区二手交易系统的详细设计和实现(源码+lw+部署文档+讲解等)
  • D34【python 接口自动化学习】- python基础之输入输出与文件操作
  • 【Linux系列】set -euo pipefail 命令详解
  • 【Python爬虫实战】正则:中文匹配与贪婪非贪婪模式详解
  • 保护数据安全:JS前端加密与PHP后端解密实战教程,让敏感信息更安全
  • 72 分布式锁
  • 使用Windbg分析dump文件排查C++软件异常的一般步骤与要点分享
  • 30 天 Python 3 学习计划
  • 【MATLAB实例】批量提取.csv数据并根据变量名筛选
  • 【软件】Ubuntu下QT的安装和使用
  • 在Spring Boot中具有多个实现的接口正确注入的六种方式
  • 登陆微软账户太慢了,如何解决
  • Vue3动态组件component不生效问题解决方法
  • 算力基础篇:从零开始了解算力
  • Redis 万字入门教程
  • LeetCode :LCR 173. 点名
  • Gin框架操作指南06:POST绑定(下)
  • LLaMA、llama.cpp和Ollama区别
  • NDK开发
  • docker overlay 占用空间太大,迁移到 /data/
  • Windows性能监控与调优:让电脑运行如飞
  • 前端响应式布局
  • 力扣MySQL 1581
  • 就是这个样的粗爆,手搓一个计算器:科学计算器
  • wordpress使用popup弹窗插件的对比