[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Баг в крестиках-ноликах
Zzepish
Написал крестики-нолики. Все-бы хорошо!
Но как только поле 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();
}
}
}
}
}
}
);

});
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.