Но как только поле matrix_array[0][0] не равно нулю, то бот перестает ставить нолики. ПРи-чем только к этому полю относится.
$(function(){
win=0;
matrix_array=[
[0,0,0],
[0,0,0],
[0,0,0]
];
win_array=[
["0:0","0:1","0:2"],
["1:0","1:1","1:2"],
["2:0","2:1","2:2"],
["0:0","1:0","2:0"],
["0:1","1:1","2:1"],
["0:2","1:2","2:2"],
["0:0","1:1","2:2"],
["2:0","1:1","0:2"]
];
function field_check(){
for(i=0;i<matrix_array.length;i++){
for(r=0;r<matrix_array[i].length;r++){
if(matrix_array[i][r]===0)
return 1;
}
}
win=1;
alert("Ничья");
return 0;
}
function win_check(){
for(i=0;i<win_array.length;i++){
who="";
for(w=0;w<win_array[i].length;w++){
split=win_array[i][w].split(/:/);
if(w===0 && matrix_array[split[0]][split[1]]===0)
break;
else
if(w===0)
who=matrix_array[split[0]][split[1]];
else
if(who!=matrix_array[split[0]][split[1]] || matrix_array[split[0]][split[1]]===0)
break;
else
if(w===2 && matrix_array[split[0]][split[1]]==who){
win=1;
alert("Победил: "+who);
}
}
}
}
$("div#tic table tr td").on("click",function(){
id=$(this).attr("data-id").split(/:/);
if(win!==1){
if(matrix_array[id[0]][id[1]]===0){
$(this).attr("class","x");
matrix_array[id[0]][id[1]]="x";
win_check();
r=0;
if(field_check() && win!==1){
while(r!==1){
x=Math.round(Math.random()*2);
y=Math.round(Math.random()*2);
//alert(x+":"+y);
if(matrix_array[x][y]===0){
matrix_array[x][y]="o";
$("div#tic table tr td[data-id='"+x+":"+y+"']").attr("class","o");
r=1;
win_check();
}
}
}
}
}
});
});