HiHo,
Du suchst zuerst nach vertikalen Reihen. Dazu gehst du spaltenweise
For ACol := 0 to StingGrid.ColCount -1 do
vor. Anschließend prüfst du, ob Reihen existieren. À la:
Delphi-Quellcode:
var
SchlangenV : Array of Integer;
SchlangenIndex :Integer;
Vergleich : String;
begin
SchlangenIndex := 0;
Vergleich := StringGrid.Cells[ACol,0];
For ARow := 1 to StingGrid.RowCount -1 do
Begin
If StingGrid.Cells[ACol, ARow] = Vergleich then
Inc(SchlangenV[SchlangenIndex]);
// Bei neuer Schlange SchlangenIndex erhöhen
End;
Den "SchlangenIndex" müsstest du dann erhöhen, wenn das aktuelle Zeichen verschieden zur letzten Schlange ist. Irgendwie bekommst du dann in dem Array die Längen heraus. Wenn du natürlich noch Anfangspositionen der Schlangen suchst, solltest du mit strukturierten Datentypen
Delphi-Quellcode:
TSchlange = record
Laenge :Integer;
StartPosX :Integer;
StartPosY :Integer:
end;
oder entsprechenden Klassen arbeiten. Letzteres ist natürlich viel mehr schikkimikki!
Was noch zu sagen wäre ist, dass der Code absolut nicht geprüft, unvollständig und dazu noch falsch formatiert ist, er soll aber eine grobe Überlegungsrichtung angeben.
Um deine Frage mit einem Wort zu beantworten:
FOR-Schleifen
Hoffe, ich war mehr konstruktiv denn destruktiv.
MfG,
hanselmansel
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.