我用JavaScript做了一个扫雷游戏,一直运行得非常顺畅,直到我添加了“expand()”函数(见下文)。我有3个问题:
我无法找到与扩展缺乏或翻转计数中添加数字有关的模式。 这里放链接 附言:对于标题我很抱歉,我不知道该怎么称呼它。
- 当它扩展时,会向“flippedCount”添加太多内容(请参见下面的代码)-在下面的图像中,右侧的div显示“flippedCount”,它是39而不是35。
- 因此,如果玩家在“expand()”期间超过90个方块(获胜数量),则获胜屏幕不会显示。
- 它也无法正确地扩展(请参见下面的图像)。
var flippedCount = 0;
var alreadySetAsZero = [];
var columnAmount = 10;
function processClick(clicked) { //i use a "(this)" to pass as "(clicked)"
nextToBombCheck( parseInt(clicked.id) );
checkWin();
}
nextToBombCheck( boxNum ) {
flippedCount++;
document.getElementById("flipped").innerHTML = flippedCount;
//long function setting "bombCount" to # bombs around clicked square goes here
if ( bombCount !== 0 ) {
//blah blah blah
} else {
alreadySetAsZero[ boxNum ] = "yes";
expand(boxNum);
}
}
function expand( emptyBoxId ) {
checkRightOfEmpty( emptyBoxId + 1 );
checkLeftOfEmpty( emptyBoxId - 1 );
checkAboveEmpty( emptyBoxId - columnAmount );
checkBelowEmpty( emptyBoxId + columnAmount );
}
function checkRightOfEmpty( boxToTheRightId ) {
//check if already marked as zero
if ( alreadySetAsZero[ boxToTheRightId ] === "yes" )
return;
//if box is at the edge
if ( boxToTheRightId % columnAmount === ( 0 ) ) {
//do nothing
} else {
nextToBombCheck( boxToTheRightId );
}
}
//and the rest are 3 similar functions
我无法找到与扩展缺乏或翻转计数中添加数字有关的模式。 这里放链接 附言:对于标题我很抱歉,我不知道该怎么称呼它。