我用 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
我无法找到缺少扩展或添加到翻转计数的数字的模式。
ps对不起标题我不知道还能叫什么