Auf Thema antworten

Das Verständnis der Methode ist gar nicht mal so das Problem. Ehrlich gesagt finden wir das mit den Konstanten sogar super. Ich will es mal anhand eines Codefetzens erklären:

[code=Java]

//weißer Bauer

if (objBrett.brett [i-10] == 0) // Konstante -10 steht für die Bewegung um ein Feld nach oben (dem //Index unseres Arrays wird damit 10 abgezogen und der Bauer der z.B. auf A2 entspricht dem Index 81 //würde auf A3 bzw. Index 71 wandern WENN der Wert [value] des Arrays 0 [leeres Feld] entspricht).

                   objBrett.farbeSchlagen ( i, i-10); //hier würde dann der start sowie ende Wert an //die farbeSchlagen Methode übergeben.

if (objBrett.brett [i- 9] % 100 / 10 == 2)//entsprich einem diagonalen Zug nach rechts oben WENN //sich dort eine schwarze Figur befindet. Mit der Berechnung Wert des Arrays%100/10 wird die 2 oder //1 die für die Farbe der Figur steht extrahiert.

                   objBrett.farbeSchlagen ( i, i-9 );

if (objBrett.brett [i-11] % 100 / 10 == 2)

                   objBrett.farbeSchlagen ( i, i-11);

if ( (i>80) && ( ( objBrett.brett [i-10] == 0) && (objBrett.brett [i-20] == 0))) //Hier wird überprüft ob //der Bauer bereits bewegt wurde. Alle dich sich auf einem Feld befinden das kleiner als der Index von //80 ist befinden sich somit auf ihrer Startposition, rückwärtslaufen kann schließlich ohnehin kein //Bauer. Zudem wird noch überprüft das sich niemand im Weg befindet.

                   objBrett.farbeSchlagen ( i, i-20);

[/code]

Wenn man es mal verstanden hat finden wir die Prüfungen über die Konstanten bzw. den Array Index/Wert echt super. Richtige Koordinaten haben wir ja durch das eindimensionale Array nicht nur den Index der aus einer Zahl besteht.

Den Objektaufruf der Brettklasse brauchen wir ja um auf unsere Werte und den Index des brett-Arays zugereifen zu können sowie die farbeSchlagen() Methode.

Wobei der zu übergebende Index der dem ende-Feld entspricht ja eigentlich nicht an die farbeSchlagen() Methode zu übergeben ist sondern eine andere Methode damit mehr anfangen müsste die auch weiß was als ende-Feld angesteuert wurde.


Die Methode isValidMove() existiert bei uns:

[code=Java]

public boolean zugGueltig (int start, int ende) {

        if((farbeGueltig(brett[start]) == true) && (farbeSchlagen(start, ende) == true))

            {

            return true;

            }

        else

            {

            return false;

            }

    }

[/code]

Bisher bekommt sie noch jeweils ein Okay ob abwechselnd mit weiß und schwarz gezogen wurde sowie wenn nur gegnerische Figuren geschlagen wurden. Jetzt bräuchte sie im Prinzip nur noch Okays der einzelnen Figurenklassen ob deren Forderungen in den Methoden zur Zugrichtung erfüllt sind.


Wir schämen uns ja langsam schon fast, aber was genau mit der paint() Methode weiterhin meinst leuchtet und weiterhin nicht wirklich ein. Was genau würdest du denn anstelle der getGraphics einsetzten? Bisher ist in dem Fall ja noch nichts dergleichen passiert das diese null geliefert hat da die Figuren nicht urplötlich verschwanden oder gar mitsamt dem Feld.



Oben