Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调试期间是否可以显示更详细的Function()信息_Javascript_Arrays_Sorting_Random_Negative Number - Fatal编程技术网

Javascript 调试期间是否可以显示更详细的Function()信息

Javascript 调试期间是否可以显示更详细的Function()信息,javascript,arrays,sorting,random,negative-number,Javascript,Arrays,Sorting,Random,Negative Number,我有一个随机数生成的问题。我为游戏“猜数字游戏”制作了一个AI,它工作正常,直到玩家的数字低于搜索的数字。在那个数学之后可能并且很可能产生负数。如果玩家命中的数字低于搜索的数字。(AI生成的数字范围由两个NUM定义(NUM数组中的最高值低于[];高于搜索值,数组中的最低值高于[];高于搜索值) 以下是GitHub上的全部代码,因为它太大,无法放在这里: 我的问题是,如何正确调试应用程序以发现此类问题。我使用console.log(functionName)按执行顺序逐个显示函数。我发出了显示数组

我有一个随机数生成的问题。我为游戏“猜数字游戏”制作了一个AI,它工作正常,直到玩家的数字低于搜索的数字。在那个数学之后可能并且很可能产生负数。如果玩家命中的数字低于搜索的数字。(AI生成的数字范围由两个NUM定义(NUM数组中的最高值低于[];高于搜索值,数组中的最低值高于[];高于搜索值)

以下是GitHub上的全部代码,因为它太大,无法放在这里:

我的问题是,如何正确调试应用程序以发现此类问题。我使用
console.log(functionName)
按执行顺序逐个显示函数。我发出了显示数组、数组[0]、数组.length的警报,但这对我没有帮助,我陷入了困境。我不知道我能做些什么

函数在执行这部分代码时开始生成否定:

else if(higher_l > 0 && lower_l > 0)
    { //losuje od 0 (ZERA) do (max-min+1) i dodaje + min;
        guessed = Math.floor(Math.random()*((higher[0])-((lower[0]+1)+1))+(lower[0]+1));

        if(guessed > drawn)
        {
            c2--;
            document.getElementById("notes2").innerHTML = p2 + " remaining chances: " + c2;
            higher.push(guessed);
            higher_l = higher.length;
            higher.sort(function(a, b) {return a-b;});
            resultH = resultH + guessed + " ";
            document.getElementById("higher").innerHTML = "Proper number is lower than: " + resultH;

            counter = setTimeout(checkCounters, 100);

            switch_trigger = setTimeout(switchPlayers, 2000);

            return;
        }
        else if(guessed < drawn)
        {   
            c2--;
            document.getElementById("notes2").innerHTML = p2 + " remaining chances: " + c2;
            lower.push(guessed);
            lower_l = lower.length;
            lower.sort(function(a, b) {return b-a});
            resultL = resultL + guessed+ " ";
            document.getElementById("lower").innerHTML = "Proper number is higher than: " + resultL;

            counter = setTimeout(checkCounters, 100);

            switch_trigger = setTimeout(switchPlayers, 2000);

            return;
        }
        else if(guessed == drawn)
        {
            p2w++;
            document.getElementById("all_wins").innerHTML = p1 + " wins: " + p1w + "/" + wins + "<br/>" + p2 + " wins " + p2w + "/" + wins;

            if(p2w < wins)
            {
                document.getElementById("msg").innerHTML = "AI found the number: " + guessed + "first!<br/>" + currentp + " and gets a point!";
                document.getElementById("next").disabled = false;
            }
            else if(p2w == wins)
            {
                alert("Winner is " + currentp + "!");
                document.getElementById("msg").innerHTML = "AI found the number: " + guessed + " <br/> Player: " + currentp + " reached required number of: " + wins + " wins first!";
            }

            end = setTimeout(endMatch, 100);

            return;
        }
    }
else if(较高值>0和较低值>0)
{//losujeod0(ZERA)do(max-min+1)i-dodaje+min;
猜测=Math.floor(Math.random()*((较高[0])-((较低[0]+1)+1))+(较低[0]+1));
如果(猜测>绘制)
{
c2--;
document.getElementById(“notes2”).innerHTML=p2+“剩余机会:”+c2;
更高。推(猜);
较高的长度=较高的长度;
sort(函数(a,b){返回a-b;});
resultH=resultH+猜测+“”;
document.getElementById(“更高”).innerHTML=“正确的数字低于:”+resultH;
计数器=设置超时(检查计数器,100);
开关触发=设置超时(switchPlayers,2000);
回来
}
否则如果(猜测<绘制)
{   
c2--;
document.getElementById(“notes2”).innerHTML=p2+“剩余机会:”+c2;
下推(猜测);
lower_l=lower.length;
sort(函数(a,b){返回b-a});
resultL=resultL+猜测+“”;
document.getElementById(“lower”).innerHTML=“正确的数字高于:”+resultL;
计数器=设置超时(检查计数器,100);
开关触发=设置超时(switchPlayers,2000);
回来
}
else if(猜测==绘制)
{
p2w++;
document.getElementById(“所有_wins”).innerHTML=p1+“wins:“+p1w+”/“+wins+”
“+p2+“wins”+p2w+“/”+wins; 如果(p2w“+currentp+”并得到一分!”; document.getElementById(“next”).disabled=false; } 否则如果(p2w==wins) { 警告(“获胜者为“+currentp+”!”); document.getElementById(“msg”).innerHTML=“AI找到了号码:“+guessed+”
玩家:“+currentp+”达到了所需的号码:“+wins+”先赢!”; } end=setTimeout(endMatch,100); 回来 } }
我知道代码本身可能是一种更好的方式,但我想在整个工作正常时对其进行改进。

(代表OP发布)


在调试程序上花了一点时间后,我找到了问题的根源。玩家提供的num不是parseInt();因此它们是字符串,而Nums来自Math.random();其中int。在解析完所有内容后,一切都正常。感谢每一个人,我学到了教训!)

您应该一步一步地进行调试。我尝试在猜测NUM和扩展数组等涉及的每个函数之后使用console.log。还可以创建显示数组、数组[0]和数组.length的警报。移动:AI:70,Me:100,AI:71,Me:1,AI:-25(在屏幕上你可以看到数组被正确地制作和排序:这里是AI的屏幕下一步:我阅读数学函数100次:猜测=数学。地板(Math.random()*((高[0])-((低[0]+1)++(低[0]+1));数学函数和数组是可以的(或者在我看来是这样)如果玩家选择的NUM高于整个游戏搜索的NUM,即使AI picsk NUM低于,这个问题也不会发生。我真的没有主意。
Math.random()
本身并没有产生负数。这是您的代码对产生负数的随机数所做的操作。因此,您的问题的标题似乎不准确。@johncolman您是对的,我会解决这个问题,谢谢。