首页 > 编程语言 >JavaScript题目二 实现猜数字游戏

JavaScript题目二 实现猜数字游戏

时间:2024-11-11 12:15:22浏览次数:5  
标签:userGuess 题目 游戏 JavaScript 用户 100 猜测 数字

实现一个猜数字游戏的过程,通常包括以下几个步骤:

  1. 生成一个随机数:计算机随机生成一个目标数字。
  2. 用户输入猜测:玩家猜测数字并提交。
  3. 比较用户输入与目标数字:计算机检查玩家的猜测,给出提示(比如“猜小了”或“猜大了”)。
  4. 循环进行:直到玩家猜对为止,或者达到预设的次数。

1. HTML 文件 (index.html)

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>猜数字游戏</title>
    <style>
        /* 简单的样式 */
        body {
            font-family: Arial, sans-serif;
            text-align: center;
            margin-top: 50px;
        }
        #result {
            font-size: 20px;
            margin-top: 20px;
            font-weight: bold;
        }
    </style>
</head>
<body>

    <h1>猜数字游戏</h1>
    <p>我已经选了一个1到100之间的数字,试着猜一猜!</p>

    <!-- 输入框供用户输入猜测数字 -->
    <input type="number" id="guessInput" placeholder="请输入一个数字" min="1" max="100">
    <button id="submitBtn">提交猜测</button>

    <!-- 显示结果 -->
    <div id="result"></div>

    <!-- 引入外部JS文件 -->
    <script src="game.js"></script>

</body>
</html>

2. JavaScript 文件 (game.js)

// 获取页面元素
const guessInput = document.getElementById('guessInput'); // 输入框
const submitBtn = document.getElementById('submitBtn');   // 提交按钮
const resultDiv = document.getElementById('result');     // 显示结果的区域

// 游戏初始化
let targetNumber = Math.floor(Math.random() * 100) + 1; // 生成1到100之间的随机数字
let attempts = 0; // 记录猜测次数

// 提交猜测的按钮点击事件
submitBtn.addEventListener('click', function() {
    // 获取用户输入的数字,并转换为整数
    let userGuess = parseInt(guessInput.value); 

    // 如果用户没有输入有效的数字(例如为空或不在范围内)
    if (isNaN(userGuess) || userGuess < 1 || userGuess > 100) {
        resultDiv.innerHTML = "请输入一个1到100之间的数字!"; // 提示用户输入有效数字
        return; // 结束本次函数执行
    }

    // 增加猜测次数
    attempts++;

    // 判断用户猜测结果
    if (userGuess > targetNumber) {
        // 如果猜测的数字大了
        resultDiv.innerHTML = `你猜的数字 ${userGuess} 太大了!<br>你已经猜了 ${attempts} 次。`;
    } else if (userGuess < targetNumber) {
        // 如果猜测的数字小了
        resultDiv.innerHTML = `你猜的数字 ${userGuess} 太小了!<br>你已经猜了 ${attempts} 次。`;
    } else {
        // 如果猜对了
        resultDiv.innerHTML = `恭喜你,猜对了!数字是 ${targetNumber}。<br>你一共猜了 ${attempts} 次。`;
        
        // 游戏结束后,2秒钟后重置游戏
        setTimeout(() => {
            // 重置游戏
            targetNumber = Math.floor(Math.random() * 100) + 1; // 生成新的随机数字
            attempts = 0; // 重置猜测次数
            resultDiv.innerHTML = ""; // 清空结果区域
            guessInput.value = ""; // 清空输入框
            guessInput.focus(); // 将焦点放回输入框
        }, 2000);
    }
});

解释:

1. HTML 文件 (index.html):
  • 基本结构
    • h1 标签显示游戏标题。
    • input 标签用来让用户输入猜测的数字,type="number" 强制用户输入数字,并且通过 min="1"max="100" 限制数字的范围。
    • button 标签用于触发用户的猜测操作。
    • div 用来显示游戏的结果(例如提示用户猜大了、猜小了或猜对了)。
  • <script src="game.js"></script>: 这是将外部的 JavaScript 文件 game.js 引入到 HTML 页面中,这样可以把逻辑和页面结构分离。
2. JavaScript 文件 (game.js):
  • 获取 HTML 元素: 使用 document.getElementById() 获取页面上的输入框、按钮和结果显示区域。

  • 初始化随机数和猜测次数

    • targetNumber 是通过 Math.random() 随机生成的1到100之间的数字。
    • attempts 用来记录玩家已经猜了多少次。
  • 事件监听

    • 使用 addEventListener() 方法监听按钮的点击事件。
    • 当用户点击按钮时,会获取用户输入的数字 userGuess,并进行一系列验证(例如检查是否是有效数字,是否在合法范围内等)。
  • 判断猜测结果

    • 如果用户输入的数字比目标数字大,显示“太大了”。
    • 如果数字比目标数字小,显示“太小了”。
    • 如果数字正确,显示“恭喜你猜对了”,并在 2 秒钟后重置游戏。

游戏的交互流程:

  1. 用户输入数字后,点击“提交猜测”按钮。
  2. 程序会判断用户的猜测是“大了”还是“小了”,并显示相应的提示。
  3. 如果用户猜对了,程序会显示恭喜信息,并且自动重置游戏,玩家可以继续猜。

优点:

  • HTML 和 JavaScript 分开:结构和行为分离,代码更加模块化,便于维护和扩展。
  • 用户交互性:通过输入框和按钮与用户进行交互。
  • 简洁清晰:每部分代码有清晰的职责,注释有助于理解代码逻辑。

        你可以将 index.htmlgame.js 文件分别保存在同一目录下,然后用浏览器打开 index.html 来进行游戏。如果你想添加更多功能,可以进一步扩展,比如限制最多猜测次数,或者让用户选择游戏的难度等。

标签:userGuess,题目,游戏,JavaScript,用户,100,猜测,数字
From: https://blog.csdn.net/wtt12344321/article/details/143656058

相关文章

  • JavaScript题目三 制作简易计算器
    目标:提供四个基本的运算功能:加、减、乘、除。支持数字输入和运算符输入。显示结果。1.HTML文件(index.html)<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,i......
  • C小题目:有一个一维数组score,放10个学生的成绩,求平均成绩。
    #include<stdio.h>intaverage(intx[],intlen){inti,sum=0;for(i=0;i<len;i++){sum+=x[i];printf("%d\n",x[i]);};inta=sum/len;printf("theaverageis%d\n",a);};intmain(){......
  • C小题目-输入10个数,要求输出其中值最大的元素和该数是第几个数
    #include<stdio.h>intmax(intx,inty){returnx>y?x:y;};intmain(){inta[10];inti,m,n;for(i=0;i<10;i++){printf("请输入第%d个数:",i);scanf("%d",&a[i]);};for(i=0,m=a[0],n=......
  • JavaScript变量
    变量是用于存储信息的"容器"。实例varx=5;vary=6;varz=x+y;尝试一下»就像代数那样x=5y=6z=x+y在代数中,我们使用字母(比如x)来保存值(比如5)。通过上面的表达式z=x+y,我们能够计算出z的值为11。在JavaScript中,这些字母被称为变量。您可以把变量看做存储数......
  • JavaScript语法
    JavaScript 语法JavaScript是一个程序语言。语法规则定义了语言结构。JavaScript语法JavaScript是一个脚本语言。它是一个轻量级,但功能强大的编程语言。JavaScript字面量在编程语言中,一般固定值称为字面量,如3.14。数字(Number)字面量 可以是整数或者是小数,或者是科......
  • JavaScript语法进阶:事件监听与处理
    一、概述事件定义了用户与网页交互时产生的各种操作。例如,单击按钮时,就产生一个事件,告诉浏览器发生了需要进行处理的单击操作。为了使对象能够对某一事件做出响应,就必须编写事件处理函数。事件处理函数是一段独立的程序代码,它在对象检测到某个特定事件时执行(响应该事件)。一个......
  • 用c语言写一个简易版的扫雷游戏
    1、扫雷游戏的功能说明1.1:基本功能     1、使用控制台实现经典的扫雷游戏     2、游戏可以通过菜单实现继续玩或者退出游戏     3、扫雷游戏的棋盘是9*9的格子     4、随机布置10个雷     5、可以排查雷      ......
  • 55. 跳跃游戏
    题目链接解题思路方法一:(注:这种方法过不了,提供一种思路,如果只想过题,可直接跳转到方法二)自顶向下的动态规划,先写暴力递归过程,然后再直接加缓存表即可。boolprocess(nums,index,next)nums:固定参数index:当前来到的下标next:能够走到的最远的下标来到index,怎么......
  • JavaScript(JS)函数的使用(二)
    12、函数函数名相同时后面的函数覆盖前面的函数;在JS中实参的个数和形参的个数可以不一致;如果形参过多,会自动填上undefined;如果实参过多,多余的实参会被忽略;函数遇到return就不向下执行,函数的结束用return。1.1函数的声明与调用<script>functionwriteText()......
  • docker的使用(使用docker部署ctf题目)
    最近实验室要举办一次ctf竞赛,本人web手兼杂项手,杂项的题在服务器上传附件就行,比较好弄,然后web的题目需要docker部署,就学了一下docker,前前后后忙了一天多,做了很多无用功。我太菜鸡了。记录一下配置过程还有docker的一些知识点。(学习尚浅,希望路过的大佬多多指导)0X01什么是DockerD......