【发布时间】:2019-09-26 21:51:54
【问题描述】:
我写了一个小程序,应该可以让我玩井字游戏。 但现在我被卡住了,因为我不知道我应该如何检查是否有人赢了..
我放置圆圈和十字的“游乐场”由 9 个 div 组成。 我用获胜选项制作了这个数组:
const winnercombinations = [
[1,2,3],
[4,5,6],
[7,8,9],
[1,5,9],
[3,5,7],
[1,4,7],
[2,5,8],
[3,6,9],
];
这就是我的 checkwin 函数到目前为止的样子(几乎是空的):
function checkwin(){
if(indexOf("") == )
if()
if()
else{
alert("Player One and Player Two tied the game.")
}
}
我不知道您是否需要它来回答我的问题,但这里有一个我的 Div 外观的小例子:
<div class="gameboard">
<div class="layout" id="firstdiv" onclick=play(this);></div>
<div class="layout" id="seconddiv" onclick=play(this);></div>
<div class="layout" id="thirddiv" onclick=play(this);></div>
<div class="layout" id="fourthdiv" onclick=play(this);></div>
<div class="layout" id="fifthdiv" onclick=play(this);></div>
<div class="layout" id="sixthdiv" onclick=play(this);></div>
<div class="layout" id="seventhdiv" onclick=play(this);></div>
<div class="layout" id="eightdiv" onclick=play(this);></div>
<div class="layout" id="ninthdiv" onclick=play(this);></div>
</div>
我需要检查我的 Div 是否属于获胜者组合订单之一?如果是 -> 有人赢了,如果不是这样 -> 平局。
这里是我的播放功能,因为您可能需要回答我的问题:
function play(clickedDiv){
clickedDiv.onclick = "";
clickedDiv.innerHTML = "<span>" + zeichen[weristdran] + "</span>";
toggle();
}
【问题讨论】:
-
欢迎来到 SO。我建议您点击edit,然后点击stacksn-p 编辑器
[<>]并提供您的问题的minimal reproducible example -
1.你的
play-函数中有什么? 2.请使用循环检查玩家在最后一步后是否获胜。 Tic-Tac-Toe 是循环的完美简单示例! -
这可能是问题所在,我的播放功能中没有循环..
-
为了让问题更好地被接受,我会专注于这个问题(比如“如何在 JS 数组中实现井字游戏模式?” - 没有 HTML 部分。如果问题更好对解决类似问题的其他人很有用。
-
@JanTuroň 我不认为这是 HTML 部分。这是半生不熟的代码。它甚至不是伪代码,几乎是“为我做这个”。此外,对于 OP,我正在写一篇关于随着您变得更加精通而通过井字游戏取得进展的文章。你在你的路线上最终得到的是:codepen.io/zfrisch/pen/ObKZVV - 你很快就会知道在敲定零件之前你需要考虑设计。 Tic-Tac-Toe 看起来很简单,但如果你允许它,它就会变成大量的 if-else 语句。这是一种学习体验。
标签: javascript html arrays