用JavaScript做一个简单的数字猜谜游戏:考验你的运气和直觉!

190 阅读4分钟

嗨,大家好!最近在学习JavaScript的时候,决定做一个简单又有趣的小项目——数字猜谜游戏!其实这个游戏就是让计算机随机生成一个数字,用户猜测这个数字,计算机会提示用户猜大了还是猜小了,直到用户猜中为止。虽然这个游戏很简单,但它包含了基本的JavaScript逻辑,能够帮助我们理解如何操作数据和使用控制结构。

1. 项目需求:实现一个数字猜谜游戏

这个游戏的目标很简单:

  • 计算机会随机生成一个 1 到 100 之间的数字。
  • 用户输入一个数字进行猜测。
  • 如果猜对了,提示“恭喜猜对了”。
  • 如果猜错了,提示“太大了”或者“太小了”,直到猜对为止。

看起来是不是很简单?接下来,我们就一步步来实现。

2. HTML结构:简洁的页面布局

首先,我们搭建页面的基本结构。这个页面包括一个输入框让用户输入数字,一个按钮来提交猜测结果,还有一个显示游戏提示信息的区域。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="style.css">
</head>
<body>
    <div class="container">
        <h1>数字猜谜游戏</h1>
        <input type="number" id="guess-input" placeholder="猜一个1到100之间的数字">
        <button id="guess-btn">提交猜测</button>
        <div id="message"></div>
    </div>
    <script src="script.js"></script>
</body>
</html>

3. JavaScript:实现猜谜游戏的核心功能

接下来是实现游戏的核心功能:计算机随机生成一个数字,然后根据用户输入的数字给出提示。我们通过 Math.random() 来生成随机数,用户输入的数字通过 guess-input 获取,点击按钮后触发猜测逻辑。

javascript
复制代码
// 获取页面元素
const guessInput = document.getElementById("guess-input");
const guessBtn = document.getElementById("guess-btn");
const message = document.getElementById("message");

// 生成一个1到100之间的随机数字
const randomNumber = Math.floor(Math.random() * 100) + 1;

// 游戏的主要逻辑
guessBtn.addEventListener("click", function() {
    const userGuess = parseInt(guessInput.value);

    // 检查用户输入是否合法
    if (isNaN(userGuess) || userGuess < 1 || userGuess > 100) {
        message.textContent = "请输入一个有效的数字!";
        message.style.color = "red";
    } else {
        // 给出提示信息
        if (userGuess === randomNumber) {
            message.textContent = "恭喜你,猜对了!";
            message.style.color = "green";
        } else if (userGuess < randomNumber) {
            message.textContent = "太小了,再试试!";
            message.style.color = "orange";
        } else {
            message.textContent = "太大了,再试试!";
            message.style.color = "orange";
        }
    }

    // 清空输入框
    guessInput.value = "";
});

代码解析:

  • 生成随机数字:我们用 Math.random() 来生成一个 0 到 1 之间的小数,乘以 100 后用 Math.floor() 转换为一个 1 到 100 之间的整数,这就是我们要猜的数字。
  • 获取用户输入:用户输入的猜测通过 guess-input.value 获取,然后用 parseInt() 转换为整数。
  • 提示信息:点击按钮后,程序会检查用户猜的数字。如果猜对了,显示“恭喜你,猜对了!”,如果猜小了或猜大了,分别提示“太小了”或“太大了”。
  • 输入校验:如果用户输入的不是有效的数字(例如字母或空值),会提示“请输入一个有效的数字!”

4. CSS样式:让界面看起来更清爽

为了让这个游戏看起来更好看,我给页面加了一些基础的CSS样式,简单地美化了一下:

css
复制代码
body {
    font-family: 'Arial', sans-serif;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
    background-color: #f0f0f0;
}

.container {
    background-color: white;
    padding: 30px;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    text-align: center;
    width: 300px;
}

input, button {
    padding: 10px;
    margin: 10px 0;
    font-size: 16px;
    border-radius: 5px;
    border: 1px solid #ccc;
}

button {
    background-color: #4CAF50;
    color: white;
    cursor: pointer;
}

button:hover {
    background-color: #45a049;
}

#message {
    font-size: 18px;
    font-weight: bold;
    margin-top: 20px;
}

5. 总结:猜谜游戏的收获

通过做这个数字猜谜游戏,我不仅加深了对 JavaScript 基础语法的理解,还学会了如何处理用户输入、使用条件语句判断结果,以及如何给用户提供即时反馈。这个小项目虽然很简单,但它涵盖了输入验证、事件处理、数字运算等基本技能,是学习 JavaScript 时一个非常好的练习。

当然,这个项目可以继续扩展,比如加入猜测次数限制、记录最高分、增加难度等。不过就算是这么简单的一个游戏,它也让我学到了很多基础的编程技巧。