alle 64 Felder in einem Schachbrett durchlaufen

abakuz

Mitglied
Hallo Forum, ich hätt da mal wieder ein Problem...:-)

Ich möchte ein Schachbrettmuster mit 64 Feldern durchlaufen und jeweils die angrenzenden Felder (ausser die Diagonalen) ansprechen, wie kann man so etwas machen.
Die x,y Koordinaten, der Mitte, der jeweiligen Felder stehen bereits fest. Ich brauche "nur" eine Möglichkeit Zeile für Zeile die einzelnen Felder zu durchlaufen.

Ich denke da an eine verschachtelte For-Schleife, habe das mal irgendwo was gelesen, aber so richtig komme ich noch nicht weiter.

Hat jemand einen Hinweis für mich, oder einen kleinen hilfreichen Link.... ich bin am suchen und finde leider keine hilfreichen Beispiele für VB6.

Danke im vorraus!
Gruß Abakuz
 
Ich hätte da folgende Idee:

Das Schachbrett stellst Du durch ein 2-dimensionales Array dar, wobei die beiden Dimensionen für die X- bzw. Y-Koordinate des Schachfelds stehen:

Code:
dim Schachbrett (1 to 8, 1 to 8) as long

Wenn Du als Mittelfeld die Koordinate (X,Y) hast, ergeben sich für die Nachbarfelder die Koordinaten:

(X-1,Y)
(X+1,Y)
(X,Y-1)
(X,Y+1)

Folgende Beispielfunktion schreibt in die angrenzenden Felder einer angegebenen Koordinate jeweils eine 1:

Code:
public Schachbrett (1 to 8, 1 to 8) as long

public sub Beschreibe_Nachbarn(x as long, y as long) ' x und y sind die Koordinaten des Mittelfeldes

  if x > 1 then   ' Koordinate (x-1,y)
    Schachbrett(x-1,y) = 1
  endif

  if x < 8 then   ' Koordinate (x+1,y)
    Schachbrett(x+1,y) = 1
  endif

  if y > 1 then   ' Koordinate (x,y-1)
    Schachbrett(x,y-1) = 1
  endif

  if y < 8 then   ' Koordinate (x,y+1)
    Schachbrett(x,y+1) = 1
  endif
end sub

Analog kannst Du auch die Werte der Nachbarfelder auslesen, oder was auch immer Du mit "ansprechen" meinst ;)
 
Suuuper ...:)
Vielen Dank RamonR für die Mühe!

Ich denke Dein Beispiel ist das was ich gesucht habe.
Morgen werde ich es mir noch genauer anschauen und versuchen es umzusetzen.

Also Thx nochmal und good night!!


Gruß Abakuz
 
abakuz hat gesagt.:
Ich denke da an eine verschachtelte For-Schleife, habe das mal irgendwo was gelesen, aber so richtig komme ich noch nicht weiter.

Ich antworte einfach mal in code... sollte selbsterklärend sein;)

Code:
For i = 1 to 8
    For j = 1 to 8
        ' Tu irgendwas mit dem Feld
    Next j
Next i
 
Zurück