【发布时间】:2014-05-14 04:08:42
【问题描述】:
我试图了解井字游戏的逻辑,我几乎已经制定了逻辑,但是在将数据推送到数组时我被卡住了。这是我创建的小提琴。
http://jsfiddle.net/afzaal_ahmad_zeeshan/6bgjp/1/
让我向你解释整个事情!
我正在尝试使用表的 9 td 作为可能获胜的 8 行。为此,我根据它们在表中的位置为一些 tds 指定了一个类名。
HTML 很简单
<div class="vicvacvoe">
<table>
<tr>
<td class="line1 line4 line7"></td>
<td class="line1 line5"></td>
<td class="line1 line6 line8"></td>
</tr>
<tr>
<td class="line2 line4"></td>
<td class="line2 line5 line7 line8"></td>
<td class="line2 line6"></td>
</tr>
<tr>
<td class="line3 line4 line8"></td>
<td class="line3 line5"></td>
<td class="line3 line6 line7"></td>
</tr>
</table>
</div>
只是一个有 9 个 tds 的简单表格,CSS 与此无关,所以我猜是这样吧。
jQuery 对于这个也很简单。但我无法将数据推送到数组。
var vic = $('.vicvacvoe table tr td');
var player = 1;
var tick = '✓';
var cross = 'X';
var user1 = [];
var user2 = [];
vic.click(function () {
var className = $(this).attr('class');
if (className != 'dead') {
// A new board place to write on...
// Now do the processes here...
if (player == 1) {
// First player!
var cArray = className.split(' ');
for (i = 0; i < cArray.length; i++) {
for (j = 0; j < user1.length; j++) {
// check for each class
if (user1[j] != cArray[i]) {
user1.push(cArray[i]);
}
}
}
} else {
/* code for second player, the same */
}
$(this).text('Works!');
$(this).attr('class', 'dead');
}
});
这是整个 jQuery 脚本。实际上,当我运行代码时,它确实会走到堆栈的末尾(到类属性更改脚本),它会锁定 td 以供进一步处理,并且它也会在 td 中写入 Works!。但我无法为该用户获取 Array 中的类名。我想为每个用户保存行号,然后检查他是否有 3 个位置被填满。我需要 Array 部分的帮助。
谢谢!
【问题讨论】:
标签: javascript jquery html arrays