欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

JS猜数字游戏如何判断一个数字是否被猜过?

程序员文章站 2022-04-12 23:52:32
...
写一个竞猜游戏,用户必须猜一个秘密的数字,在每次猜完后程序会告诉用户他猜的数是太大了还是太小了,直到猜测正确,最后打印出猜测的次数。如果用户连续猜测同一个数字则只算一次。

我就是不知道怎么实现“如果用户连续猜测同一个数字则只算一次。”

没有思路,下面附上我写的代码,就是不知道实现最后一句。

如果有大神看到的话帮忙回答下,真的是想不出来。

回复内容:

涉及到javascript中的一个很有用的点:把object当hash来用

/**
 *
 * 用object当做hash来记录猜过的数字
 * 假设把所有猜过的数字存在一个array中, 其中有重复的数字
 * [1, 2, 5, 6, 3, 5, 1, 6, 2, 6]
 *
 */

var guesses = [1, 2, 5, 6, 3, 5, 1, 6, 2, 6];
var guessesHash = {};
var guessesCount = 0; // total guess count exclude duplicated guesses

for (var i = 0; i 
用数组或者object把输入过的数存起来即可。
(function() {
    var history={},
        secret=4; // https://www.xkcd.com/221/
    
    do {
        var input=parseInt(prompt('输入数字: '));
        history[input]=true;
        if(input>secret)
            alert('比这个小');
        else if(inputsecret)
            alert('比这个大');
    } while(input!==secret);
    
    var count=0;
    for(var _ in history)
        count++;
    alert('你猜了 '+count+' 次');
})();
定义个全局变量,记录用户每次输入的值,一样的值不做重复记录,不一样的记录。最后看看这个变量的数。。。。 第一种方法:建个数组,用户输入时检查数组最后一个数是否和输入相等,不相等就push进去。最后输出数组的长度就好了。
第二种方法:不管用户输入是否有连续重复的数字,都push到一个数组里,最后把连续的数字剔除掉之后的长度就好了。这样问题就变成了:实现一个函数,用户输入:[1,2,2,2,3,3,4,4,4,5,5],要求输出为5 (即[1,2,3,4,5]的长度)
var arr = [1,2,2,2,3,3,4,4,4,5,5];

function getLength(arr) {
  return arr.filter(function(v,i,arr){
    return v!==arr[i-1];
  }).length;
}

console.log(getLength(arr)); // 5
var n=0;
var lastAnswer=null;
//var 答案数组=[];//题主的问题里没有要求记录用户输入的答案,如果有需求的话,就加上这个。
function 用户输入之后的处理函数(int 用户输入的值){
if(lastAnswer!=用户输入的值){
n++;
lastAnswer=用户输入的值;
//答案数组.push(用户输入的值);//题主的问题里没有要求记录用户输入的答案,如果有需求的话,就加上这个。
//和正确答案比较。
}
else{
//连续猜测同一个数字;
}
} 不知道间隔猜测同样的数字算不算你说的连续输入相同的数字 ?不过原理是一样的 :
声明一个数组 ,里面放之前猜测过的数字,每次输入新数字时到数组中查找是否已存在,已经存在的,则跳过。 参考数组去重,很简单实现 把每次数字存入数组,对比数字和数组最后一个数是否相等。 hash虽说不太懂大概意思就是再弄一个数组 专门放这个数字猜没猜过? 这不是很简单么,两个变量的事,一个答案,一个是上次的值JS猜数字游戏如何判断一个数字是否被猜过?

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • JS猜数字游戏如何判断一个数字是否被猜过?
  • 专题推荐

    作者信息
    JS猜数字游戏如何判断一个数字是否被猜过?

    认证0级讲师

    推荐视频教程
  • JS猜数字游戏如何判断一个数字是否被猜过?javascript初级视频教程
  • JS猜数字游戏如何判断一个数字是否被猜过?jquery 基础视频教程
  • 视频教程分类