我正在爲一個JavaScript項目創建一個掃雷遊戲,並遇到了一個問題,我無法讓我的腦袋回合。當你在掃雷遊戲中點擊一個空單元(沒有任何地雷的單元,因此不顯示數字)時,這將顯示與其他單元相鄰的空單元格塊,當找到包含這些空塊的「數字牆」時停止。下面的實施例:遞歸函數來檢查2D數組
[1] http://datagenetics.com/blog/june12012/hole.png
這需要一個遞歸函數找出哪些塊將被顯現出來。我此刻代碼只揭示了被點擊的塊:
function revealGridContents()
{
switch (positionClickContents)
{
case 0:
ctx.drawImage(clickedImage, (xClick*20), (yClick*20));
break;
case 1:
ctx.drawImage(num1Image, (xClick*20), (yClick*20));
break;
case 2:
ctx.drawImage(num2Image, (xClick*20), (yClick*20));
break;
case 3:
ctx.drawImage(num3Image, (xClick*20), (yClick*20));
break;
case 4:
ctx.drawImage(num4Image, (xClick*20), (yClick*20));
break;
case 5:
ctx.drawImage(num5Image, (xClick*20), (yClick*20));
break;
case 6:
ctx.drawImage(num6Image, (xClick*20), (yClick*20));
break;
case 7:
ctx.drawImage(num7Image, (xClick*20), (yClick*20));
break;
case 8:
ctx.drawImage(num8Image, (xClick*20), (yClick*20));
break;
};
};
傳遞到switch語句的數量是數組grid[xClick][yClick]
在數據的值;例如4代表一個有4個地雷的地塊,所以4的圖像將被顯示出來。
情況0是空白塊被點擊的情況,所以這個代碼需要修改,但我真的無法想象該怎麼做。
從我能理解的情況來看,我需要調用case 0中的revealGridContents();
函數,但爲每個要檢查的方格傳入xClick和yClick的新值(數組位置的x和y值) 。
任何幫助闡明我下一步需要做的事情將不勝感激!