gpt4 book ai didi

javascript - 创建一个猜谜游戏,让计算机猜测用户输入的数字

转载 作者:行者123 更新时间:2023-12-03 01:07:12 26 4
gpt4 key购买 nike

鉴于用户输入应在 1 到 1000 之间,我尝试使用 1-1000 的(已排序)整数数组的二分搜索来输出以下内容:

enter image description here

我只想要输出——忽略格式。现在,代码:

const testButton = document.getElementById("test");

testButton.addEventListener('click', () => {
myArray = new Array(1000);
for (i = 0; i < 1000; i++) {
myArray[i] = i + 1;
//just for visual aid, not to be actual part of final output
document.getElementById("boop").innerHTML = myArray;
document.getElementById("boop").innerHTML += `<p>${myArray[myArray.length -1]}</p>`;
}


var userInput = parseInt(document.getElementById("input").value);
let min = myArray[0];
let max = myArray[myArray.length - 1];

if (userInput < 1 || userInput > 1000) {
document.getElementById("boop").innerHTML += "That's not between 1 and 1000.";
} else {

while (min < max) {

userInput = parseInt(document.getElementById("input").value);
let min = myArray[0];
let max = myArray[myArray.length - 1];


let mid = myArray[myArray.length - 1];

mid = parseInt(Math.floor(mid / 2));
let count = 0;

if (userInput == mid) {
count++;
document.getElementById("boop").innerHTML += `<p>Guessed ${mid} and got it. Took me ${count} tries.</p>`;
} else if (userInput > mid) {
count++;
document.getElementById("boop").innerHTML += `<p>Guessed ${mid}. Too low.</p>`;
min = mid + 1;
mid = parseInt(Math.floor(mid + (mid / 2)));
} else {
count++;
document.getElementById("boop").innerHTML += `<p>Guessed ${mid}. Too high.</p>`;
max = mid - 1;
mid = parseInt(Math.floor(mid / 2));
}
}

}


});
<html>

<head>
</head>

<body>
<input type="text" id="input">
<button id="test">
Start Game
</button>
<p id="boop">
</p>
</body>

</html>

如果你想搞乱我的 JSfiddle,enter link description here

运行它时我没有收到任何控制台错误,但它似乎是一个无限循环,因为我的浏览器挂起。我浏览过类似的问题,我能找到的最相似的是: enter link description here 但它使用的是 Java,而且我还没有学过 Java(对于一般编程来说仍然很新),所以它有点令人困惑,但我相信它是类似的概念。

预先感谢您提供的任何帮助!

最佳答案

在 while 循环中,每次都会重置为起始条件。所以本质上它每次都是不断猜测 500。

 while (min < max) {
userInput = parseInt(document.getElementById("input").value);
let min = myArray[0];
let max = myArray[myArray.length - 1];

每次 while 循环执行时,最后两行都会将其重置为初始条件(所以你是对的,它处于无限循环中)。它将其设置为根据猜测更改最大值或最小值,但这些值会在下次执行时重置(重置为 1 和 1000)。

关于javascript - 创建一个猜谜游戏,让计算机猜测用户输入的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52341639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com