gpt4 book ai didi

javascript - 井字棋与 JavaScript 卡住

转载 作者:行者123 更新时间:2023-12-02 17:01:19 24 4
gpt4 key购买 nike

我正在尝试用 JavaScript 制作井字游戏。

我使用了一种方法来将当前输入与获胜组合进行比较。1)如何确定玩家1和玩家2的输入?2)我可以比较 3 ,但我无法计算出每个玩家的第四次点击。

敬请指教。

var check = [[0,0,0],[0,0,0]]; //check[0] for player 1 , check[1] for player 2 , but i can't figure out how to increase the counter for each player on each click.

function playercol(ideal) //main
{

var idname = "box"+idval;
var currentcount = (playercount%2);

if( currentcount == 0 )
{
document.getElementById(idname).innerHTML="O";
}
else
{
document.getElementById(idname).innerHTML="X";
}

document.getElementById("player").innerHTML="Player "+((playercount%2)+1);
checkwin(check,0);//to check //0 is the current player index


playercount++;
}

我的 fiddle http://jsfiddle.net/1br5LLrj/3/

最佳答案

我尝试尽可能少地修改您的代码http://jsfiddle.net/rrj24ze9/1

重要部分是胜利检查:

您无需记住玩家点击的内容并将其与获胜组合进行比较。相反,迭代获胜组合并检查其中之一是否仅包含玩家所取的字段。

var winning = [
[1, 2, 3], [4, 5, 6], [7, 8, 9],
[1, 4, 7], [2, 5, 8], [3, 6, 9],
[1, 5, 9], [3, 5, 7]
];

function checkwin(player) {
for (var i = 0; i < winning.length; i++) {
var combo = true;
for (var j = 0; j < 3; j++) {
if (document.getElementById('box' + winning[i][j]).innerHTML != markers[player]) {
combo = false;
}
}
if (combo) return true;
}
return false;
}

还有很多改进的潜力,例如不使用 innerHTML (将数据与 View 分离),甚至防止对同一字段进行两次点击,但我再次尝试留下您的代码尽可能完好无损。

关于javascript - 井字棋与 JavaScript 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25679434/

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