private void TestArray() {
Random rnd = new Random();
// Array erstellen
int[][] array = new int[8][];
for (int i = 0; i < 8; i++)
array[i] = new int[8];
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
// Zufallswerte hier auf 1-3 beschränkt damit die Warscheinlichkeit das mehrere gleiche Neben/Übereinanderstehen höher ist
int rndval = rnd.Next(3) + 1;
array[i][j] = rndval;
sb.Append(rndval);
sb.Append('|');
}
sb.Append('\n');
}
// Ganzes Array ausgeben damit man sehen kann wo gleiche sind ..
Console.WriteLine(sb.ToString());
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
// Gleiche Treffer rechts suchen
int count = SearchRight(array, i, j, 0);
if (count >= 3) {
// 3 oder mehr gleiche? Dann ausgeben
Console.WriteLine("Position:" + i + "," + j + ": " + array[i][j] + " horizonal " + (count+1) + " mal");
// Und Position in X erhöhen damit nicht bei z.B 4 gleichen auch nochmal 3 gleiche ausgegeben wird ..
j += count - 1;
}
}
}
for (int j = 0; j < 8; j++) {
for (int i = 0; i < 8; i++) {
// Gleiche Treffer unten suchen
int count = SearchDown(array, i, j, 0);
if (count >= 3) {
// 3 oder mehr gleiche? Dann ausgeben
Console.WriteLine("Position:" + i + "," + j + ": " + array[i][j] + " vertikal " + (count + 1) + " mal");
// Und Position in Y erhöhen damit nicht bei z.B 4 gleichen auch nochmal 3 gleiche ausgegeben wird ..
i += count - 1;
}
}
}
}
private int SearchRight(int[][] array, int i, int j, int count) {
// Arraygrenze noch nicht überschritten und dieses Feld gleich dem nächsten daneben ?
if (j < 7 && array[i][j] == array[i][j + 1]) {
// Anzahl erhöhen
count++;
// X erhöhen
j++;
// Weitersuchen
return SearchRight(array, i, j, count);
}
return count;
}
private int SearchDown(int[][] array, int i, int j, int count) {
// Arraygrenze noch nicht überschritten und dieses Feld gleich dem nächsten darunter ?
if (i < 7 && array[i][j] == array[i + 1][j]) {
// Anzahl erhöhen
count++;
// Y erhöhen
i++;
// Weitersuchen
return SearchDown(array, i, j, count);
}
return count;
}