Помогите найти ошибку
js скрипт - игра сапер.
Нажимаем на ячейку и если вокруг ячейки нету бомб, то эти 8 ячеек через цикл поочереди автоматически нажимаются. И происходит такойже процесс в каждой из них. Почему не везде открываются 8 полей вокруг пустой ячейки? <style> td{ background-color: red; border-color: black; border-width: 2px; border-style: solid; width: 30px; height: 30px; } </style> <table id="con"> </table> <script> var bomb = new Array('s9x7k', 's5x4k', 's7x7k', 's5x3k', 's8x1k', 's5x2k', 's3x9k'); var press_loc = new Array(); function in_array(needle, haystack, strict){ var found = false, key, strict = !!strict; for (key in haystack) { if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)){ found = true; break; } } return found; } function press(s, k){ ex = "s"+s+"x"+k+"k", num_bomb = 0, p = 0, ps = [], pk = []; if(!in_array(ex, press_loc)){ if(in_array(ex, bomb)) for(i in bomb) eval(bomb[i]).style.backgroundColor = 'black'; else{ press_loc.push(ex); eval(ex).style.backgroundColor = 'white'; for(sl=s-1;sl<s+2;sl++){ if(sl > 0 && sl < 11){ for(kl=k-1;kl<k+2;kl++){ if(kl > 0 && kl < 11 && !in_array("s"+sl+"x"+kl+"k", press_loc) && (sl != s || kl != k)){ if(in_array("s"+sl+"x"+kl+"k", bomb)) num_bomb++; else ps[p] = sl, pk[p] = kl, p++ } } } } } } if(num_bomb) eval(ex).innerHTML = num_bomb; else if(p) for(p in ps) press(ps[p], pk[p]); } function cont(){ var arrr = []; for(r=1;r<11;r++){ var arrd = []; for(d=1;d<11;d++) arrd.push("<td onclick=\"javascript: press("+r+", "+d+");\" id=\"s"+r+"x"+d+"k\"></td>"); arrr.push("<tr>"+arrd.join('')+"</tr>"); } con.innerHTML = arrr.join(''); } cont(); </script> |
Часовой пояс GMT +3, время: 18:17. |