Donc, je suis en train de coder un clone de Bejeweled et j'ai une erreur dans ma fonction de remplissage. J'ai une matrice de 15 x 15 de bijoux de couleur différente et j'essaie de compter le nombre de tuiles avec remplissage.Algorithme de remplissage en JavaScript - trop de récursivité
La fonction est ici:
function count(x, y, color) {
if(matrix[x] && matrix[x][y]) {
if(matrix[x][y].color != color)
return;
cnt++;
count(x, y+1, color);
count(x, y-1, color);
count(x-1, y, color);
count(x+1, y, color);
console.log(cnt);
}
}
Qu'est-ce qui ne va pas?
Intéressant. En un clin d'œil, je dirais que vous comptez encore et encore les mêmes cellules ... d'abord celle qui se trouve à sa droite, puis * celle * qui se trouve à sa gauche, puis «ALLER À DÉBUTER» et ainsi de suite. – usr2564301
Vous ne recoloriez pas les cellules que vous avez visitées, vous obtenez une récurrence infinie. –
Les limites @Chara sont vérifiées par les deux premières expressions logiques dans la condition if – axelduch