私は仕事していますチックタックトウ jQueryを使用してゲーム。私はほとんど終わりましたが、ポイントで立ち往生しました。 squareClicked
関数の最後にコードを追加して、勝者が存在するかどうかを確認するにはどうすればよいですか?存在する場合は、bgreen
クラスを正方形(tds)に割り当てたいと思います。jQueryを使用して関数内の別の関数に属するオブジェクトのプロパティにアクセスするには?
$('table').on('click', squareClicked);
function squareClicked(e) {
var $sqr = $(e.target);
var player = $('.current-player').attr('id');
if (!$sqr.attr('class')) {
$sqr.addClass(player + '-marker');
switchPlayer();
}
}
function getBoard() {
var board = [];
$('td').each(function() {
board.push(this.className[0]);
});
return board;
}
function checkWin() {
var board = getBoard();
// array of possible win sets
var winArray = [
[0, 1, 2], [3, 4, 5], [6, 7, 8],
[0, 3, 6], [1, 4, 7], [2, 5, 8],
[0, 4, 8], [2, 4, 6]];
var winInfo = {
win: false
};
// loop through the possible win sets
for (var i = 0; i < winArray.length; i++) {
// get the marks at the three win locations
a = board[winArray[i][0]];
b = board[winArray[i][1]];
c = board[winArray[i][2]];
// see if the same marker is at each location
if (a && a === b && b === c) {
winInfo.win = true;
winInfo.play = winArray[i];
winInfo.winner = a;
return winInfo;
}
}
return winInfo;
}
私はsquareClicked
関数内checkWin();
と呼ばれるが、それはまったく実行されません。
あなたは私たちを示してもらえますか?おそらくJSFiddleが役に立ちます。 – mjohnsonengr
「まったく動かない」とはどういう意味ですか?エラーメッセージが表示されますか? checkWin()はグローバルオブジェクトで定義されていますか? – Damon
ありがとうございます。さて、checkWinの戻り値が何であるかを考えてみましょう:プロパティが勝利、遊び、勝者を持つオブジェクト。私はsquareClickedの終わりに、あなたはそれを呼び出してその値を変数に代入したいと思っています。勝利のプロパティを真実にチェックしてください。 – mjohnsonengr