我正在做一个井字游戏。有人已经教过我如何宣布获胜者并停止进一步的比赛。
有两个持续存在的问题。第一个是当胜利直接交叉时,计数器将 x 获胜加 1,将 o 获胜加 2。第二个问题是我无法让比赛打成平局。如果没有结果,我已经尝试过。
这是整个js,游戏可以在:http: //jvonhausen.com/final/p19/
jQuery(function() {
$('#start').click(clear_squares);
$('.square').click(function () {
square_stuff(this);
});
});
var player_x = true;
var complete = false;
var winner = '';
var x_wins = 0;
var o_wins = 0;
var draw = 0;
function clear_squares () {
localStorage.setItem('x_count', x_wins);
localStorage.setItem('o_count', o_wins);
localStorage.setItem('draw_count', draw);
$('.square').html('');
player_x = true;
$('#output').html('turn: x');
complete = false; //allows for new game
}
function square_stuff (square) {
if (!complete) {
if ($(square).html() == '') {
if (player_x == true) {
$(square).html('x');
player_x = false;
} else {
$(square).html('o');
player_x = true;
}
}
}
check_squares();
}
function check_squares () {
complete = true;
var values = new Array();
var winner = '';
$('.square').each(function () {
values.push( $(this).html());
if ($(this).html() == '') complete = false;
if ( !winner && values[0] == values[1] && values[1] == values[2] ) winner = values[0];
if ( !winner && values[3] == values[4] && values[4] == values[5] ) winner = values[4];
if ( !winner && values[6] == values[7] && values[7] == values[8] ) winner = values[7];
if ( !winner && values[0] == values[3] && values[3] == values[6] ) winner = values[3];
if ( !winner && values[1] == values[4] && values[4] == values[7] ) winner = values[1];
if ( !winner && values[2] == values[5] && values[5] == values[8] ) winner = values[5];
if ( !winner && values[0] == values[4] && values[4] == values[8] ) winner = values[8];
if ( !winner && values[2] == values[4] && values[4] == values[6] ) winner = values[2];
if (winner) {
complete = true;
$('#output').html('winner: ' + winner);
if ($(this).html() == 'x') {
localStorage.setItem('x_count', x_wins);
x_wins++;
$('#wins_x').val(x_wins);
}
if ($(this).html() == 'o') {
localStorage.setItem('o_count', o_wins);
o_wins++;
$('#wins_o').val(o_wins);
}
if (winner == '' && complete == true) {
$('#output').html('no winner');
localStorage.setItem('draw_count', draw);
draw++;
$('#draws').val(draw);
}
}
if (winner == '' && complete == false) {
if (player_x == true) {
$('#output').html('turn: x');
} else {
$('#output').html('turn: o');
}
}
});
}