Je suis en train de construire un jeu de casse-brique. Mon code utilise deux tableaux 2D, l'un contenant des index de couleur (1 - 6) pour représenter les cercles colorés, et un autre indiquant si le cercle a été sélectionné (1 ou 0). Je peux sélectionner avec succès un cercle, la bonne valeur dans le deuxième tableau change et ceci est reflété correctement à l'écran.Sélectionnez toutes les valeurs adjacentes dans un tableau multidimensionnel
C'est la méthode qui sélectionne un cercle et quatre cercles adjacents. Je passe les coordonnées X et Y que l'utilisateur a sélectionnées sur la grille. Je mets cette position choisie (de 0 à 1 dans le tableau SelectedCircles. Vérifiez si l'un des côtés a un cercle avec la même couleur, le cas échéant, changer ce cercle choisi aussi.
private void SelectSurroundingCircles(int xPosition, int yPosition)
{
SelectedCircles[yPosition, xPosition] = 1;
int colorKey = Circles[yPosition, xPosition];
int increment = 1;
for (int i = 0; i < Nickles.Length; i++)
{
if (Circles[yPosition - increment, xPosition] == colorKey)
SelectedCircles[yPosition - increment, xPosition] = 1; // TOP
if (Circles[yPosition + increment, xPosition] == colorKey)
SelectedCircles[yPosition + increment, xPosition] = 1; // BOTTOM
if (Circles[yPosition, xPosition + increment] == colorKey)
SelectedCircles[yPosition, xPosition + increment] = 1; // RIGHT
if (Circles[yPosition, xPosition - increment] == colorKey)
SelectedCircles[yPosition, xPosition - increment] = 1; // LEFT
}
}
Ce que je veux Pour réaliser, tous les cercles de la même couleur qui sont les uns à côté des autres sont sélectionnés: vous regardez d'abord les cercles adjacents comme ci-dessus, regardez leurs cercles adjacents, et ainsi de suite ... ne pouvait pas comprendre. Espérons que quelqu'un peut me aider, je dois être sur quelque chose.
Merci.
Le problème est que je ne vérifie pas seulement les cercles supérieur, gauche, inférieur et droit. Je dois aussi vérifier les cas en haut à gauche, en haut à droite, en bas à gauche et en bas à droite, ce qui me donne des maux de tête. J'ai essayé tant de choses sans chance -_- – Nick
Donc vous avez besoin de 8 contrôles au total (NW, N, NE, E, SE, S, SW, W) N'est-ce pas 4 ifs de plus que vous avez maintenant et c'est fait? – Eddy
ne fonctionne pas pour moi. Seules les 8 premières enceintes sont vérifiées, puis le motif commence à devenir fou. – Nick