0
我一直在使用javascript/jquery編寫掃雷遊戲。我似乎無法得到顯示的空單元格。我的算法是顯示被點擊的空單元的8個鄰接點。當我點擊div時,我在控制檯中點擊了8次,並且弄亂了adjElements值。任何幫助如何使其工作?如何在掃雷遊戲中揭示空單元格?
這裏我到目前爲止所做的。
//my divs are generated with a function from id '#s-1' to '#s-81'
var adj=[-10,-9,-8,-1,1,8,9,10];
$('.grid').find('div').click(function(event) {
var div=this.id;
var numDiv=div.replace(/[^\d.]/g, '');
revealSquare(numDiv);
});
var revealSquare=function(square) {
if(!($(square).hasClass('isMine'))) {
if($(square).find('span').text()=='') {
revealEmptyCells(square);
}
}
};
var revealEmptyCells=function(clickDiv) {
$.each(adj, function(index, val) {
if(val+clickDiv>0 && val+clickDiv<=81) {
var adjElements=val+clickDiv;
console.log('adj: '+adjElements); //it reveals odd numbers like for div #s-1 it reveals 19
$('#s-'+adjElements).css({
border: '4px solid #d4d4d3',
});
}
});
}
假設點擊DIV是空的,並且我除去VAL + clickDiv> 0和val + clickDiv < = 81;如果我點擊div s-1,adj元素是-101,-91,-81,-11,11,81,91,101。爲什麼我會得到這些值?
它的工作!謝謝!你能解釋它爲什麼有效嗎?出了什麼問題?我是新來的JavaScript。 – Ndx
我想我解釋了我的答案?你的代碼將1 + 9渲染爲19,而它應該渲染它10.操作數必須是數字才能使其工作。 – trincot
是的,謝謝!現在我明白了。 – Ndx