JavaScript应用——手把手教你做一个页面化猜数字游戏

本文介绍了如何利用JavaScript在网页上实现一个猜数字游戏。通过HTML和JavaScript交互,用户可以在页面上输入猜测的数字,游戏会给出提示(猜大了、猜小了或猜对了)。文章详细讲解了代码实现过程,包括随机数生成、事件监听和游戏重置功能,并提供了完整的源代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一听到猜数字游戏,想必大家都不太陌生吧?是的没错,很多人都用C语言或者Java写过猜数字游戏小程序,博主也不例外,之前写过C语言版本的猜数字游戏,感兴趣的同学可以看看C语言版本猜数字游戏。本篇博客主要介绍如何用JavaScript实现一个页面化的猜数字游戏,废话不多说,直接进入正题~

🍓 实现过程分解

在这里插入图片描述
首先,我们先用简单的HTML代码实现最基本的页面图案,其预览效果如下图所示
在这里插入图片描述
接下来,我们用querySelector方法将一些需要用到的元素获取到:重新开始一局游戏的按钮、请输入要猜的数字的文本框、猜的按钮、已经猜的次数和结果
在这里插入图片描述
然后,我们需要生成1到100的随机数,在JS中,也提供了一个生成随机数的函数random,但注意,JS中的random函数和C语言中的random函数有较大的区别,前者只能生成0到1之间的随机数(包含0但不包含1)。为了生成1到100之间的整数随机数,我们可以给JS生成随机数函数的值乘以100并向下取整,此时我们就有了0到99之间的随机整数了,最后,我们再进一步加1即可。
在这里插入图片描述

生成完随机数后,我们需要设置一些点击事件:

  1. 更新猜的次数
  2. 取出输入框的内容,和待猜的元素进行对比,返回结果
  3. 重新开始游戏

此部分代码及注释如下:
在这里插入图片描述
除了上述清空结果的方法外,还有一种简单粗暴的方法:

 location.reload();

documentlocation类似,都是浏览器提供的全局变量,前者主要控制DOM结构(页面),后者主要控制BOM(浏览器)跳转。此代码的作用相当于刷新浏览器,一旦将浏览器刷新了,之前创建的DOM树还要各种JS变量都就不复存在了,从而完成清空数据

🍉 预览效果图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

🍎 完整源代码

<!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>Document</title>
</head>
<body>
    <button type="button" id="reset">重新开始一局游戏</button>
<br>
 
请输入要猜的数字:<input type="text" id="number">
<button type="button" id="button"></button>
<br>
已经猜的次数:<span id="count">0</span>
<br>
结果:<span id="result"></span>
<script>
    //1.获取需要用到的元素
    let inputE = document.querySelector("#number");
    let countE = document.querySelector("#count");
    let resultE = document.querySelector("#result");
    let btn = document.querySelector("#button");
    let resetBtn = document.querySelector("#reset");
    // 2.随机生成一个 1-100 的数字
    let guessNumber = Math.floor(Math.random() * 100) + 1// 0 - 1 之间的数
    
    // 3.更新猜的次数
    let count = 0;//记录猜的次数

    btn.onclick = function() {
        count++;
        countE.innerText = count;
 
        let userGuess = parseInt(inputE.value);//将输入框中的字符串转换成整数
        //4.对比过程
        if (userGuess == guessNumber) {
            resultE.innerText = "猜对了";
            resultE.style = "color: green;";
        } else if (userGuess < guessNumber) {
            resultE.innerText = "猜小了";
            resultE.style = "color: blue;";
        } else {
            resultE.innerText = "猜大了";
            resultE.style = "color: red;";
        }
    };
    //5.实现重新开始一句游戏
    resetBtn.onclick = function() {
        //清空方法一
        
        //guessNumber = Math.floor(Math.random() * 100) + 1//重新生成随机数
        //count = 0;//将猜的次数设回0
        //countE.innerText = count;
        //resultE.innerText = "";//将猜的结果清空
        //inputE.value = "";//j将用户的输入框清空
        //清空方法二

        location.reload();
    }
</script>
</body>
</html>
Vue.js 是一款流行的前端 JavaScript 框架,用于构建用户界面。而 Vue 3 则是该框架的最新版本,在性能、API 设计等方面都有了显著改进。下面是一份简单的入门指南: ### 环境搭建 1. **安装 Node.js** 因为 Vue CLI 和其他工具都依赖于Node环境,所以首先要保证电脑上已经装好了它。 2. **创建项目** - 使用 `vue create` 命令通过 Vue CLI 创建新应用。 ```bash npm install -g @vue/cli # 安装CLI全局命令行工具 (如果尚未安装) vue create my-project-name # 替换my-project-name为你想要的名字 cd my-project-name && npm run serve # 启动本地服务器查看效果 ``` 3. **配置开发环境** 如果你习惯使用IDE的话推荐 VSCode,并添加一些插件如Vetur等可以帮助提高编码效率;当然也可以选择WebStorm这类专业级编辑器。 ### 核心概念学习 #### 组件思想 组件(Component)是Vue的核心特性之一,每个页面都可以拆分为若干独立的小模块(即一个个小部件),然后根据需要组合起来形成完整的UI结构。这种设计使得代码更易于维护和复用。 - `<script setup>` 新标签简了单文件组件(SFCs)内的脚本编写方式; - 自定义事件允许父子间通信及状态管理; - Slots 插槽机制让父元素可以向子组件传递内容片段而不破坏封装性。 #### 反应式系统 Vue借助Proxy代理实现了对数据属性自动追踪变的能力——当视图中的变量值发生更改时会立即触发DOM更新操作。 ```javascript import { ref } from 'vue'; export default { setup() { const count = ref(0); function increment(){ console.log(`Count is now ${count.value++}`); } return { count,increment }; } } ``` 以上代码展示了如何声明响应式的数字型state以及关联的操作函数。这里采用了Composition API风格代替原有的Options API形式,提高了逻辑组织灵活性。 #### 生命周期钩子(Hooks) 熟悉生命周期方法有助于更好地控制实例内部流程节点的行为动作,比如初始完毕后获取远程资源加载列表之类的任务就可以放在 mounted 阶段来做。 --- 这只是冰山一角啦!接下来你可以尝试跟着官方文档进一步深入理解更多高级特性和最佳实践技巧~
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春风~十一载

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值