如何用 JavaScript 创建一个猜数字游戏?

2024-01-01

我需要创建一个猜数游戏,使用它接收一个值document.getElementById并将其输出到<textarea> using document.getElementByid。我需要创建一个用户可以猜测的随机数。用户将信息放入 HTML 文本框中,当用户猜测时,它会将答案存储在<textarea>。第一个猜测将显示太高或太低,然后任何答案将显示更温暖或更冷。我不知道从哪里开始。以下是 HTML 示例。

<form>
    <fieldset>
        <legend>Inputs</legend>
        <label for="guess">Your Guess:</label>
        <input type="text" id="guess" value="523"/>
        <input type="button" onclick="yourGuess()" value="submit"/><br/>
        <input type="button" onclick="" value="Show My Guesses"/>
        <input type="button" onclick="" value="New Game"/><br/>
        <input id="cheat" type="checkbox" value="cheat"/>
        <label for="cheat">Cheat</label>
    </fieldset>
    <fieldset>
        <legend> Output</legend>
        <textarea id="output" name="output" rows="5" style="width: 100%;">              
    </textarea>
    </fieldset>
</form>

JavaScript:

function yourGuess()
{
var guess1 = document.getElementById("guess").value;
var guess2 = 501;
var newGuess = Math.floor(guess2);
var n = 0;

if (newGuess < guess1) {
    yourReturn = "Your are too low!!!"
}
else {
    if (newGuess > guess1) {
        yourReturn = "You are too high!!!"
    }
    else {
        yourReturn = "Correct, You are the winner!!!"
    }       
}
}

这是我的做法:

http://jsfiddle.net/FB8Uh/ http://jsfiddle.net/FB8Uh/

<fieldset>
 <legend>Inputs</legend>
 <label for="guess">Your Guess:</label>
 <input type="text" id="guess" value="523" />
 <input type="button" onclick="yourGuess()" value="submit" /><br />
 <input type="button" onclick="" value="Show My Guesses" />  
 <input type="button" onclick="" value="New Game" /><br />
 <input id="cheat" type="checkbox" value="cheat" onclick="showNumberToGuess()" />
 <label for="cheat">Cheat</label>
 <div id="cheatShow" style="display: none;">
  <input id="numberToGuess" type="text" />
  <label for="numberToGuess">Number to guess</label>
 </div>
</fieldset>
<fieldset>
 <legend> Output </legend>
 <textarea id="output" name="output" rows="5" style="width: 100%;"></textarea>
</fieldset>

JavaScript:

<script type="text/javascript">
function yourGuess() {
    guess = document.getElementById("guess").value;
    guesses = document.getElementById("output");

    if (guess == numToGuess) {
        guesses.value = guesses.value + "\r" + "You have guessed correctly! ("+guess+")";
    } else if (guess > numToGuess) {
        guesses.value = guesses.value + "\r" + "You guessing too high!("+guess+")";
    } else {
        guesses.value = guesses.value + "\r" + "You guessing too low!("+guess+")";
    }
}

function showNumberToGuess() {
    if (document.getElementById('cheat').checked) {
        document.getElementById('numberToGuess').value = numToGuess;
        document.getElementById('cheatShow').style.display = 'inline';
    } else {
        document.getElementById('numberToGuess').value = '';
        document.getElementById('cheatShow').style.display = 'none';
    }
}

var numToGuess = Math.floor(Math.random()*500);
</script>

UPDATED

http://jsfiddle.net/FB8Uh/4/ http://jsfiddle.net/FB8Uh/4/

HTML:

<fieldset>
 <legend>Inputs</legend>
 <label for="guess">Your Guess:</label>
 <input type="text" id="guess" value="523" />
 <input type="button" onclick="yourGuess()" value="submit" /><br />
 <input type="button" id="showguesses" onclick="showGuesses()" value="Show My Guesses" />  
 <input type="button" onclick="generateNumberToGuess(true)" value="New Game" /><br />
 <input id="cheat" type="checkbox" value="cheat" onclick="showNumberToGuess()" />
 <label for="cheat">Cheat</label>
 <div id="cheatShow" style="display: none;">
  <input id="numberToGuess" type="text" />
  <label for="numberToGuess">Number to guess</label>
 </div>
</fieldset>
<fieldset id="guesses" class="guesses">
 <legend> Output </legend>
 <textarea id="output" name="output" rows="5" style="width: 100%;"></textarea>
</fieldset>

JavaScript:

function yourGuess() {
    // You can store references to the value and the
    // guesses textarea in local function variables.
    var guess = document.getElementById("guess").value;
    var guesses = document.getElementById("output");

    // First, if the guess is the same, just show the answer.
    // Append onto the textarea the result.
    if (guess == numToGuess) {
        guesses.value = guesses.value + "\r" + "You have guessed correctly! ("+guess+")";
    } else if (guess > numToGuess) {
        guesses.value = guesses.value + "\r" + "You guessing too high!("+guess+")";
    } else {
        guesses.value = guesses.value + "\r" + "You guessing too low!("+guess+")";
    }
}

function showNumberToGuess() {
    // Show the randomly generated number if the onclick event
    // fires and the checkbox is check; otherwise, remove the
    // number and hide using display: none;.
    if (document.getElementById('cheat').checked) {
        document.getElementById('numberToGuess').value = numToGuess;
        document.getElementById('cheatShow').style.display = 'inline';
    } else {
        document.getElementById('numberToGuess').value = '';
        document.getElementById('cheatShow').style.display = 'none';
    }
}

// Randomly generate a number
function generateNumberToGuess(confirmIt) {
    var guesses = document.getElementById("output");

    // First, confirm this is what we want if the confirmIt
    // argument was passed.
    if (confirmIt && !confirm('Restart game with new number?')) {
        return;
    }

    guesses.value = '';
    numToGuess = Math.floor(Math.random()*500);
    guesses.value = "New number generated.\n";

    // Don't forget to hide the new number.
    document.getElementById('numberToGuess').value = '';
    document.getElementById('cheatShow').style.display = 'none';
}

function showGuesses(){
    var guesses = document.getElementById('guesses');
    var btn = document.getElementById('showguesses');

    if (guesses.style.display != 'block') {
        guesses.style.display = 'block';
        btn.value = 'Hide My Guesses';
    } else {
        guesses.style.display = 'none';
        btn.value = 'Show My Guesses';
    }
}

window.onload = function(){
    generateNumberToGuess();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用 JavaScript 创建一个猜数字游戏? 的相关文章

  • 在长时间 Ajax 调用期间显示进度

    我有一个简单的网站 http www kousenit com twitterfollowervalue http www kousenit com twitterfollowervalue 根据一个人的 Twitter 关注者计算数量 由
  • 在 `data:` URI 中转义 SVG 的正确方法?

    Chrome 最近已启动使用换行符阻止 URL 和 lt 人物 https www chromestatus com features 5735596811091968 我维护的应用程序严重依赖数据 URI 中的 SVG 图像 data i
  • 使用过渡添加子项时 div 的平滑增长

    尽管使用了以下代码 但其行为并不符合我的预期transition所以可能有些事情我不明白 理想情况下 单击该按钮会将一个子项添加到id2div 并制作id1分区增长smoothly因此 function id1 button click g
  • 调整大小后获取实际图像大小

    我有一个充满缩略图的页面 用 css 调整大小150x150 当我单击缩略图时 页面变暗 并且图像以其真实尺寸显示 目前 我必须手动创建一个包含所有图像的实际高度的数组 为了解决设计问题 减少画廊的手动操作 我需要在调整图像大小 CSS 后
  • 超出 Google 电子表格上的 ImportXML 限制

    我现在陷入了 抓取问题 特别是我想将作者的姓名从网页提取到谷歌电子表格 其实功能 IMPORTXML A2 span class author vcard meta item 正在工作 但是当我增加了要抓取的链接数量后 它就开始无限加载 所
  • 解构为两个单独的变量

    有没有一种快速的方法来解构一个对象 以便将其存储到两个不同的组中 例如 const obj a 1 b 2 c 3 d 4 e 5 const a b obj store the rest of the properties that we
  • 如何在本机反应中发出触摸事件

    我正在尝试启用 panResponder 以拖放模式在屏幕上移动组件 然而 这种拖放必须通过longPress在这样的元素上 longPress捕获事件 所以当panResponder已启用onStartShouldSetPanRespon
  • Protractor - 等待多个元素

    我正在尝试等待页面上的多个元素 我不知道可能有多少个 但至少会有一个 我知道使用以下命令等待单个元素 效果很好 var EC protractor ExpectedConditions browser wait EC presenceOf
  • 等待动态加载脚本

    在我的页面正文中 我需要插入以下代码作为 AJAX 调用的结果 p Loading jQuery p p Using jQuery p 我不能使用 load 由于文档已经加载 因此该事件不会触发 这安全吗 如果没有 我如何确保在执行自定义生
  • Vue 多个组件位于一个包/文件中

    假设我想创建一个 UI 包 如何将多个组件放入一个 JS 文件中 通常我会将不同的组件放在不同的文件中 import ButtonText from ButtonText vue import ButtonIcon from ButtonI
  • jQuery 选择器在控制台中不起作用

    我一辈子都无法解决这个问题 我正在运行 js 容器状态 是页面上正在运行的 js 的控制台日志 它显示一个选择器 但如果我想在控制台中执行任何操作 它只会返回 null 我假设我在某个地方过度编写了 jQuery 函数 就好像我调用了 jQ
  • 如何创建环境变量来保护我的网站的 Google 地图 API 密钥(或任何其他秘密值)?

    我正在学习使用 Bootstrap 编写自己的网站 并使用 Google 地图 API 密钥和 Google Developers 的脚本轻松地将地图放置在我的页面上 理想情况下 我会有类似的东西 即我已经尝试过这个 Html PHP
  • 如何使用 JavaScript 禁用滚动条?

    当我仅在 Internet Explorer 7 中显示代表模式窗口的 div 时 我需要锁定浏览器滚动条 谷歌搜索我发现我可以使用document body style overflow hidden 但这不适用于 IE7 我也尝试过do
  • 在 WordPress 和 woocommerce 中禁用 zxcvbn.min.js

    如您所知 zxcvbn min js 约为 400kb 并且默认在 WordPress 网站中加载 我想知道如何阻止加载此 JavaScript 库 因为我不想在我的网站中检查密码长度 将以下内容添加到主题的 function php 或自
  • 谷歌地图API v3如何获取所有形状的坐标

    我有这个谷歌脚本 可以创建形状和删除形状 但没有太多关于保存形状的信息 我查了一下互联网 知道我可以通过 overlaycomplete 中的 getpaths 访问路径坐标 而且我还可以将坐标推入一个收集所有形状的数组中 但是 如果用户删
  • 如何使网站适应用户的屏幕分辨率?

    我正在使用 1024x768 屏幕分辨率来设计我的网站 当您从屏幕分辨率较小 较大的计算机上的浏览器中查看网站时 网站开始变形 无论用户的屏幕分辨率是什么 如何使网站适应用户的屏幕分辨率 我相信通过 JavaScript 或 CSS 是可能
  • 带有子节点的拖放区域

    我有一个带有多个子节点的拖放区域 主要元素有dropenter and dropleave事件 但是 如果您将文件拖动到主元素内部和子节点上方 则dropleave被触发 如何处理 以便dropleave仅当拖动的元素和鼠标位于主元素之外时
  • 路由和干净路径(无主题标签)在 angularJS 中不起作用

    伙计们 这让我发疯了 我为此奋斗了几个小时 却找不到解决方案 我知道为了从 URL 路径中清除主题标签 我需要使用 locationProvider html5Mode true 但由于某种原因 这对我来说效果不佳 我使用 tomcat 7
  • jQuery可排序发布数据,但没有数据

    谁能告诉我我在这里缺少什么 我的数据似乎总是空的 我做错了什么 document ready function nav sortable connectWith nav axis y update function event ui var
  • 如何在jsp页面中包含javascript

    我是 J2EE 和 Web 开发的新手 这是我的问题 我想在网页中包含 angular js 这是有效的版本 但我也想要一些本地的 javascript 文件 并且希望我想在本地目录中导入 angularjs

随机推荐

  • 查找数组中是否包含 2 旁边的 2

    我被这个问题困住了 给定一个整数数组 如果该数组某处的 2 旁边包含 2 则返回 True has22 1 2 2 True has22 1 2 1 2 False has22 2 1 2 False 我知道基本思想 存在语法错误 但我无法
  • Python TypeError:不支持的操作数类型 -:“float”和“NoneType”

    有谁知道为什么我会收到这样的错误 TypeError unsupported operand type s for float and NoneType 如果你这样做 我将非常感激 我对此很陌生 正在努力学习 但我真的陷入了 Python
  • 将模型传递给局部视图

    我有一个 Address 部分视图 该部分视图包含与地址模型匹配的所有地址字段 在此视图的顶部 我将模型设置如下 模型数据 地址 在我的 CustomerInfo 视图中 我尝试以下操作将地址字段呈现为表单的一部分 Html Partial
  • git - 默认推送到 --recurse-submodules=check

    我总是忘记推送子模块 有时我忘记添加 recurse submodules check to git push 更糟糕的是 我团队中的其他人可能也会这样做 有没有git config我们可以设置的选项check默认值 Git v2 7 0
  • Task.Delay().Wait() 发生了什么?

    我很困惑为什么Task Delay Wait takes 4 倍多的时间 then Thread Sleep E g task 00正在运行仅线程 9并采取了2193ms 我知道 同步等待在任务中很糟糕 因为整个线程被阻塞 它只是为了测试
  • 清除 MATLAB 中的类定义

    命令clear classes清除当时加载到内存中的所有类定义 是否可以仅清除特定的类定义 编辑 我有兴趣删除特定的课程定义来自内存 而不是类实例 当我编写新的 HPF 类时 我自己也遇到了这个问题 所以我尝试了一些事情 因为当我调试新类时
  • CI/CD 的 Helm 图表版本

    我为 CI CD 管道设置了一个 helm 存储库 但我遇到的一件事是 helm 的版本控制系统 该系统专注于语义版本控制系统 如下所示x x x 我希望能够指定 暂存 最新 和 生产 等标签 尽管我能够成功上传带有字符串版本的图表 NAM
  • 全文搜索和 Python

    有人可以帮我推荐一个支持 Python 的全文搜索引擎吗 现在我们已经有了一个 MySQL 数据库 我想添加一个功能 让全文搜索引擎索引该数据库中某些表中的某些文本 Web 应用程序将使用此文本数据来搜索数据库中的相应记录 例如 在客户表中
  • 正则表达式匹配非行首

    我有以下 XML 标签
  • Jquery .serialize() 不处理下拉列表的值?

    我认为这应该是一件简单的事情 但由于某种原因 除了下拉列表的选定值之外 我的所有表单值都被很好地序列化 表单如下
  • C#.net 将带有附件的电子邮件排队发送的最佳方法

    我正在寻找一种更安全地从我们的应用程序发送电子邮件的方法 目前 我们直接将电子邮件发送到 IIS SMTP 服务器 但正在寻找在服务器出现故障 重新启动等情况下更安全地传送电子邮件的方法 我正在考虑实现此目的的一种方法是将电子邮件 带有附件
  • AttributeError:“AuthorizedSession”对象没有属性“configure_mtls_channel”

    我正在使用 Cloud Composer 编排两个数据流作业 并且一个月以来运行良好 突然 这两个作业停止工作 并出现以下错误消息 在 download blob 文件中 usr local lib python3 6 site packa
  • 更改 MKMapView 的地图类型

    我正在尝试开发一个界面 供用户更改mapType 视图 我想通过在地图视图的右下角添加折叠效果来实现这一点 用户可以在右下角按下或按下并拖动 地图将折叠起来足以显示 3 种不同的地图类型 常规 混合和卫星 这与 iPhone 上的谷歌地图具
  • Bootstrap JS 函数未在 Rails 6/Webpacker 中加载

    使用 Webpacker 和 Rails 6 攀登学习曲线 我已经使用 Yarn 和 Webpack 安装了 Bootstrap 4 当我尝试在浏览器的 JS 控制台中使用 Bootstrap 组件时 我得到 TypeError fn bu
  • Twitter BootStrap 模态窗口后备链接

    我正在使用 Twitter Bootstrap 模式窗口 以防万一模态窗口由于 js 错误而无法工作 有一个后备页面 如果模式窗口未加载 如何确保页面已加载 打开模态窗口的链接 a href login modal Login a 模态窗口
  • 如何将本地文件夹连接到 Git 存储库并开始在分支上进行更改?

    我是源代码管理新手 过去 我手动备份文件副本并对克隆进行更改 然后在调试后将更改手动传输到主文件 我意识到这类似于分支与 Git 存储库的工作方式 但我从未使用过 我下载了 Git 并在 GitLab 上注册了一个帐户 并开始了一个新项目
  • Haxe——像 ActionScript 一样嵌入文件?

    在 ActionScript 中 您可以执行以下操作 Embed source src myfile xml mimeType application octet stream private var xml Class 它会嵌入您的文件以
  • 先前操作未完成的问题

    我对 Linux 相当陌生 我正在尝试安装 openCV 软件 我正在安装一些东西 突然断电并且中断了 当我重新安装它时 我不断收到此错误 svn E155037 Previous operation has not finished ru
  • 使用 argparse 调用函数[重复]

    这个问题在这里已经有答案了 我在从 argpars 调用函数时遇到问题 这是我的脚本的简化版本 可以打印我给 s 或 p 的任何值 import argparse def main parser argparse ArgumentParse
  • 如何用 JavaScript 创建一个猜数字游戏?

    我需要创建一个猜数游戏 使用它接收一个值document getElementById并将其输出到