In einer Matrix gleiche Elemente finden
-
Hallo. Ich versuche gerade das samegame zu programmieren. Meine frage ist: Wie findet man wirklich alle Elemente, die zusammengehören. Auch solche "komplizierten" wie folgend:
xxxxxx x x x x x x xxxx xx xxxxxxxxxxx
-
Du fängst bei einem Stein an, und prüfst alle umliegenden Steine.
Für die, die du findest, machst du es ganz genauso, prüfst also wieder alle Umliegenden Steine - ignorierst aber diejenigen, die du schon "registriert" hast.
Bis alle gefunden sind.
-
-
vielen Dank, hat mir sehr geholfen :xmas1:
-
Es funktioniert nun soweit, ich habe aber nur das Problem, dass bei der Auswahl des obersten Steins ich die Steine nicht löschen kann. Also ich weiß wie ich sie dann löschenmuss, aber ich weiß nicht wie man übeprüfen kann, dass die Spalten zu denen gehören, bei denen die oberen Steine gelöscht werden.
Bisher habe ich
for (int m=2;m<11;++m){ int anzx=0; for (int n=2;n<11;++n) if(feld[n][m]=='x') anzx++; for(int n=10;n>1;--n){ if(feld[n][m]=='x'){ for(n;n>1+anzx;--n){ feld[n][m]=feld[n-anzx][m]; feld[n-anzx][m]=' '; } } } }Da bei mir die zweite Zeile in der Matrix sowieso leer ist hab ich mit
if (feld[n][m]=='x' && feld[n-1][m]==' ')versucht, aber warum auch immer wird diese Bedingung nicht erfüllt

-
Weil es so Spass macht, hier meine Implementation: http://ideone.com/522LDI
-
danke, war alles falsch bei mir vorhin...