Javascript jQuery Tic Tac Toe问题
jQuery的新特性。不确定为什么此代码无法显示wins 我有两个单击函数,一个用于X,另一个用于O 然后我有一个checkBoard函数,它通过一个名为board的数组来检查一个名为wins的数组,以查找匹配的wins组合 该表堆叠在jquery代码的顶部。我首先粘贴了jquery,因为我认为这就是问题所在,因为我可以用值填充方框,但它没有显示胜利 代码如下:Javascript jQuery Tic Tac Toe问题,javascript,jquery,Javascript,Jquery,jQuery的新特性。不确定为什么此代码无法显示wins 我有两个单击函数,一个用于X,另一个用于O 然后我有一个checkBoard函数,它通过一个名为board的数组来检查一个名为wins的数组,以查找匹配的wins组合 该表堆叠在jquery代码的顶部。我首先粘贴了jquery,因为我认为这就是问题所在,因为我可以用值填充方框,但它没有显示胜利 代码如下: <script> var count = 0 $('td').on('click', f
<script>
var count = 0
$('td').on('click', function (){
if(count % 2 === 0){
$(this).text("X");
} else {
$(this).text("O");
}
count++
checkBoard();
});
function checkBoard(){
var wins = [[$("#0"),$("#1"),$("#2")], [$("#3"),$("#4"),$("#5")], [$("#6"),$("#7"),$("#8")], [$("#0"),$("#3"),$("#6")], [$("#1"),$("#4"),$("#7")], [$("#2"),$("#5"),$("#8")], [$("#0"),$("#4"),$("#8")], [$("#6"),$("#4"),$("#2")]]
var board = [[$("#0"), $("#1"), $("#2")], [$("#3"),$("#4"),$("#5")], [$("#6"), $("#7"), $("#8")]]
for(w in this.wins){
var pattern = this.wins[w];
var checkPattern = this.board[pattern[0]] + this.board[pattern[1]] + this.board[pattern[2]];
if (checkPattern = ["X","X","X"]) {
return "X Wins!";
console.log("X");
} else if (checkPattern = ["O","O","O"]) {
return "O Wins!";
console.log("O");
}
}
}
</script>
<table>
<tr>
<td id="0"></td>
<td id="1"></td>
<td id="2"></td>
</tr>
<tr>
<td id="3"></td>
<td id="4"></td>
<td id="5"></td>
</tr>
<tr>
<td id="6"></td>
<td id="7"></td>
<td id="8"></td>
</tr>
</table>
td {
width: 100px;
height: 100px;
border: 2px solid black;
font-size: 5em;
text-align: center;
}
变量计数=0
$('td')。在('click',函数(){
如果(计数%2==0){
$(此).text(“X”);
}否则{
$(本).text(“O”);
}
计数++
棋盘();
});
功能检查板(){
(3)2号““,[$(3)3号“,[$(3)3号“,,[$(3)3号“,,,[$(3)3号“,,$(4号“,,,((“4”)4号“,,((“5”)5号“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,$(“5”),$(“8”),[$(“0”),$(“4”),$(“8”),[$(“6”),$(“4”),$(“2”)]
风险值委员会=[$(“#0”)、$(“#1”)、$(“#2”)、[$(“#3”)、$(“4”)、$(“5”)、[$(“6”)、$(“7”)、$(“8”)]
for(在本例中为w.wins){
var pattern=this.wins[w];
var checkPattern=this.board[pattern[0]]+this.board[pattern[1]]+this.board[pattern[2]];
if(checkPattern=[“X”、“X”、“X”]){
返回“X赢!”;
控制台日志(“X”);
}else if(checkPattern=[“O”、“O”、“O”]){
返回“胜利!”;
控制台日志(“O”);
}
}
}
运输署{
宽度:100px;
高度:100px;
边框:2件纯黑;
字号:5em;
文本对齐:居中;
}
问题似乎在for循环中。您甚至不需要board数组,只需检查wins数组中每个jQuery对象的值,看看是否有win
当use only use 1等号时,在if语句中将CHECKPATTER分配给数组。另外,使用jQuery选择器$(ID)返回jQuery对象,而不是标记中的内容
请尝试以下方法:
for (var i=0; i<wins.length; i++) {
var w = wins[i];
var checkXwin = w[0].text() == "X" && w[1].text() == "X" && w[2].text() == "X";
var checkOwin = w[0].text() == "O" && w[1].text() == "O" && w[2].text() == "O";
if (checkXwin) {
console.log("X");
return "X Wins!";
} else if (checkOwin) {
console.log("O");
return "O Wins!";
}
}
for(var i=0;i以更改id开始。在HTML中,id以数字开始无效。更改var以该数字开始。wins与Board相同这是我使用代码时收到的错误:未捕获类型错误:w[0]。val不是函数这是新错误:未捕获类型错误:w[0]。文本不是函数