首页 > 编程语言 >猜数字游戏(附源码)

猜数字游戏(附源码)

时间:2023-07-01 11:14:22浏览次数:33  
标签:const 游戏 textContent resetButton 源码 guessField lastResult document 数字

CSS部分:

 <style>
        html {
            font-family: sans-serif;
        }

        body {
            width: 50%;
            max-width: 800px;
            min-width: 480px;
            margin: 0 auto;
        }

        .lastResult {
            color: white;
            padding: 3px;
        }
    </style>

HTML部分:

<body>
<h1>猜数字游戏</h1>

<p>我刚才随机选定了一个100以内的自然数。看你能否在 10 次以内猜中它。每次我都会告诉你所猜的结果是高了还是低了。</p>

<div class="form">
    <label for="guessField">请猜数: </label>
    <input type="text" id="guessField" class="guessField">
    <input type="submit" value="确定" class="guessSubmit">
</div>

<div class="resultParas">
    <p class="guesses"></p>
    <p class="lastResult"></p>
    <p class="lowOrHi"></p>
</div>
</body>

js部分:

<script>

    // 开始编写 JavaScript 代码
    let randomNumber = Math.floor(Math.random() * 100) + 1;

    const guesses = document.querySelector('.guesses');
    const lastResult = document.querySelector('.lastResult');
    const lowOrHi = document.querySelector('.lowOrHi');

    const guessSubmit = document.querySelector('.guessSubmit');
    const guessField = document.querySelector('.guessField');

    let guessCount = 1;
    let resetButton;
    guessField.focus();

    function checkGuess() {
        let userGuess = Number(guessField.value);
        if (guessCount === 1) {
            guesses.textContent = '上次猜的数:';
        }
        guesses.textContent += userGuess + ' ';

        if (userGuess === randomNumber) {
            lastResult.textContent = '恭喜你!猜对了';
            lastResult.style.backgroundColor = 'green';
            lowOrHi.textContent = '';
            setGameOver();
        } else if (guessCount === 10) {
            lastResult.textContent = '!!!GAME OVER!!!';
            setGameOver();
        } else {
            lastResult.textContent = '你猜错了!';
            lastResult.style.backgroundColor = 'red';
            if (userGuess < randomNumber) {
                lowOrHi.textContent = '你猜低了!';
            } else if (userGuess > randomNumber) {
                lowOrHi.textContent = '你猜高了';
            }
        }

        guessCount++;
        guessField.value = '';
        guessField.focus(); // 获取焦点
    }

    guessSubmit.addEventListener('click', checkGuess);

    function setGameOver() {
        guessField.disabled = true;
        guessSubmit.disabled = true;
        resetButton = document.createElement('button');
        resetButton.textContent = '开始新游戏';
        document.body.appendChild(resetButton);
        resetButton.addEventListener('click', resetGame);
    }

    function resetGame() {
        guessCount = 1;

        const resetParas = document.querySelectorAll('.resultParas p');
        for (let i = 0; i < resetParas.length; i++) {
            resetParas[i].textContent = '';
        }

        resetButton.parentNode.removeChild(resetButton);

        guessField.disabled = false;
        guessSubmit.disabled = false;
        guessField.value = '';
        guessField.focus();

        lastResult.style.backgroundColor = 'white';

        randomNumber = Math.floor(Math.random() * 100) + 1;
    }

</script>

 

标签:const,游戏,textContent,resetButton,源码,guessField,lastResult,document,数字
From: https://www.cnblogs.com/xm11667799/p/17518972.html

相关文章

  • 3d烟花效果的实现(附源码)
    这里没有办法展示动态效果,具体动态效果请复制代码去浏览器中查看:CSS部分:<style>html,body{margin:0px;width:100%;height:100%;overflow:hidden;background:#000;}#canvas{width:100%;height:100%;}</style>HTML部分:<body><can......
  • 3d立体相册的实现(附源码)
    效果图(这里没办法显示动态,具体动态自己复制代码去网页看):CSS部分:html{background:#000;height:100%;}/*最外层容器样式*/.wrap{position:relative;position:absolute;top:0;right:0;bottom:0;left:0;width:200px;......
  • 深度理解Iterator底层源码
    publicabstractclassAbstractList<E>extendsAbstractCollection<E>implementsList<E>{//外部操作数:记录添加数据、删除数据的次数(记录元素个数变化的次数) protectedtransientintmodCount=0;//4}这段代码是一个抽象类AbstractList,实现了List接口。下面是对代码......
  • 离线安装ffmpeg源码包【详细教程】
    今天分享一下ffmpeg源码包的安装过程,针对在没有网络环境下,且不能直接使用yum如何成功安装ffmpeg源码包。博主本人通过正式服务器测试,记录整个安装过程。值得大家收藏同时,我会分享一下如何使用ffmpeg对H.264格式视频(MP4)进行m3u8+ts切片的转换,并生成m3u8+ts格式文件ffmpeg所需要环......
  • JAVA石头迷阵游戏
    大家帮我看看这个代码有没有问题,为什么将z设为作弊器但是在IDE中运行出来没有用//测试类importjavax.swing.*;publicclassTest{publicstaticvoidmain(String[]args){newMainFrame();}}importjavax.swing.*;importjava.awt.event.ActionEvent;......
  • 数字经济下的架构新图景—2023架构·可持续未来峰会(北京主会场)成功举办!
     2023 年6 月29日,由TheOpenGroup主办的2023架构·可持续未来峰会(北京主会场)在机械工业出版社圆满落幕。 本次大会以“可持续未来”为主题,采取1+3,即北京主会场+上海/成都/深圳三个城市峰会场模式,聚焦架构设计、架构语言、云计算、微服务、敏捷转型、人才培养等丰富主题,为150......
  • 【图像隐藏】基于DCT的数字图像水印防伪附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • Debug Golang源码中的单元测试
    goland配置如上,既可以debuggolang源码中的单元测试。......
  • “数字”赋能有爱无“障”
    去年,湖南省娄底市残联和湖南联通娄底市分公司举行了“智慧助残”战略合作签约仪式,在“智慧残联”建设,低收入残疾人家庭信息消费资费优惠政策,普惠便利的电信服务,爱心助残服务等领域开展全面战略合作。一年多来,娄底联通积极用实际行动推动残疾人事业高质量发展,以数字力量共谱“智慧助......
  • 【源码分析】Mybatis 的配置解析过程
    博主介绍:✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌Java知识图谱点击链接:体系化学习Java(Java面试专题)......