gpt4 book ai didi

javascript - 尝试创建一个简单的 'mastermind-like' 游戏

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:22:52 28 4
gpt4 key购买 nike

我一直在研究这个简单的数字 mastermindlike游戏。目前,我有 correct_number_correct_spot 计数器工作,但不是 correct_number_wrong_spot 计数器。我仍然得到奇怪的读数,我无法弄清楚是什么导致了错误。这是代码。

<!doctype html>
<html>
<head>
<script type="text/javascript" src="mastermind.js"></script>
</head>
<body onload="doSomeShit();">

Submit Guess:<input type="text" id="guess">
<button id="submit_button">Submit</button>
<div id="mymoves">

</div>

</body>
</html>

和 js:

var right_answer=[1,2,3,4];
var max_turn= 12;
var current_turn=0;
var player_guess= [];

function make_move(guess){
var myguess = document.getElementById("mymoves");

var correct_number_correct_spot= 0;
var correct_number_wrong_spot= 0;
for(var i = 0; i < 4; ++i)
{
console.log(guess.split("").contains(i));
if(right_answer[i] == guess[i])
++correct_number_correct_spot;
else if(right_answer[i] !== guess[i] && guess.split("").contains(i))
++correct_number_wrong_spot;
}




myguess.innerHTML += correct_number_correct_spot + " were right!" +correct_number_wrong_spot+ "there but not in the right order";

}

Array.prototype.contains = function(obj) {
var i = this.length;
while (i--) {
if (this[i] == obj) {
return true;
}
}
return false;
}

function doSomeShit(){
var btn = document.getElementById("submit_button");
btn.onclick = function(){ // this makes button clickable
var x = document.getElementById("guess").value; // gets the input value
make_move(x);
}
}

现在,我的 correct_number_correct_spot 检查器正在运行,但是我的 correct_number_wrong_spot 计数器已关闭,并且在 for 循环中无法正常工作。换句话说,它似乎缺少检查并且与输入的猜测不对应。换句话说,现在的默认答案是 [1,2,3,4] 所以如果输入 1234,它应该说 4 是正确的!”0 在那里但顺序不正确。如果我输入 4321,它应该说 0 是对!有 4 个,但顺序不正确。等等。编辑** 我确实最终让它工作得更好但仍然不完全,使用来自 jquery 的代码:

我确实通过以下代码让它主要与 jquery 一起工作:if(answ[i] == guess[i]){

++correct_number_correct_spot;
}
else if(answ[i] !== guess[i] && $.inArray(guess[i], answ) !== -1){
++correct_number_wrong_spot;
}

现在唯一的问题是,当你说答案是 [3,6,7,8] 而你猜是 9,3,3,0 时,它会告诉你那里有 2,但顺序不对。所以它仍然关闭。

最佳答案

if(right_answer[i] !== guess[i] && guess.split("").contains(i)

这似乎是在检查值i 是否包含在guess 中。这很奇怪,因为 i 只是一个从 0 到 3 的索引,而不是实际的数字。我觉得应该是这样

if(right_answer[i] !== guess[i] && guess.split("").contains(right_answer[i])

此外,我建议您将代码分成两部分:首先将 guess 拆分成与 right_answer 相同的格式(即是一个数组),然后才计算出答案。

关于javascript - 尝试创建一个简单的 'mastermind-like' 游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30775250/

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