Hm, also wenn ich das richtig verstehe kommst Du mit dem Ablauf nicht zurecht. So würde ich die Sache angehen...
Wenn ich auf ein Feld klicke, muss meine Funktion/Prozedur folgende Aufgaben erledigen:
- feststellen ob der Klick auf ein leeres oder besetztes Feld erfolgt ist
-- wenn Bombe: Game Over!
-- wenn belegt: Feld aufdecken, nächster Zug.
-- wenn leer:
- feststellen in welcher Reihe und welcher Spalte der Klick gemacht wurde
- feststellen welchen Index die umliegenden Felder haben (ringförmig)
- feststellen ob die ermittelten Felder leer sind oder belegt
- feststellen ob die angrenzenden Felder, der aufgedeckten Felder, leer sind
...und das solange bis keine leeren Felder angrenzend zu finden sind.
Das hört sich jetzt erstmal sehr kompliziert oder komplex an. Man kann das aber, zumindestens für den Anfang, in Einzelschritte unterteilen. Zum Beispiel erstmal nur in der Senkrechten nach leeren Feldern suchen. Dann die Funktion entsprechend erweitern um auch die waagerechten Reihen abzusuchen. Eventuell einfach mehrere Funktionen schreiben und die nacheinander aufrufen.
Hoffe das hilft Dir weiter.
Nachtrag:
Hier noch ein Tipp: Um festzustellen ob ein Feld leer ist oder nicht, liegt es nahe den Index dafür zu verwenden. Es gibt aber auch die Möglichkeit die "Tag-Eigenschaft" zu benutzen. Zwar liefert diese nur einen String zurück, aber der lässt ja konvertieren. Oder aber man definiert die Tag-Eigenschaft so durchdacht, dass Sie einem als String mehr von Nutzen ist als der Index.
Das Feld Oben-Links könnte zB den Tag "A1" haben usw...