1
所以我在畫布上製作了一個網格遊戲,如果選擇了一個正方形,那麼它周圍同樣顏色的正方形也會被選中,當正方形被點擊時,新的方格掉下來。在javascript畫布中超出了最大調用堆棧大小
我所做的電網是9行15列 -
tile_array = [[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]];
,我與隨機顏色的瓷磚網格填充。 和我的繼承人懸停功能 -
function over_tile(our_tile) {//, pointer
our_tile.alpha = 0.5;
if (our_tile.tile_row > 0) { // top row availiable
top_tile = this.tile_array[our_tile.tile_row-1][our_tile.tile_column];
if (top_tile.tile_color == our_tile.tile_color) {
this.over_tile(top_tile);
};
};
if (our_tile.tile_column < 14) { // right column availiable
right_tile = this.tile_array[our_tile.tile_row][our_tile.tile_column+1];
if (right_tile.tile_color == our_tile.tile_color) {
this.over_tile(right_tile);
};
};
if (our_tile.tile_column > 0) { // left column availiable
left_tile = this.tile_array[our_tile.tile_row][our_tile.tile_column-1];
if (left_tile.tile_color == our_tile.tile_color) {
this.over_tile(left_tile);
};
};
if (our_tile.tile_row < 8) { // bottom row availiable
bottom_tile = this.tile_array[our_tile.tile_row+1][our_tile.tile_column];
if (bottom_tile.tile_color == our_tile.tile_color) {
this.over_tile(bottom_tile);
};
};
}
現在我面臨的問題是,上面是創建一個調用堆棧大小超出誤差。 但在功能,如果我註釋掉的部分,並嘗試一些變化工作 -
- 左邊一列,下排
- 左邊一列,頂行
- 右側立柱,下排
- 右列,頂行
,這些都是產生錯誤 -
- 左欄右列
- 頂行,底行
和任意三個或所有組合不工作在一起,他們每個人單獨工作。我似乎無法弄清楚這個問題。
哦,那是如此愚蠢的我......現在我明白了....非常感謝這麼快的答案。 – MaSK
我只是把一個字母檢查,它的工作。再次感謝 – MaSK
沒問題,謝謝 –