2D Arrays mit vorgegebenem Muster

RamboGS

Neues Mitglied
Hallo, ich habe folgende Aufgabenstellung bekommen. Ich habe es fast hinbekommen, jedoch kann es sein, dass mein Ansatz falsch ist. Die Aufgabe lautet:
Schreiben Sie eine Java-Methode
public static void fuelleOberesDreieck(char[][] feld, char zeichen), die das Feld feld oberhalb der Mittellinie mit einem auf dem Kopf stehenden Dreieck füllt. (Alle anderen Array-Elemente sollen unverändert bleiben.) Als Füllzeichen soll der übergebene Parameter zeichen verwendet werden. Für ein (7,7)-Array, das zuvor durch Aufruf von fuelleFeld wie in a) gezeigt gefüllt wurde, ergibt sich durch anschließenden Aufruf von fuelleOberesDreieck('A'):
o, A, A, A, A, A, o,
o, o, A, A, A, o, o,
o, o, o, A, o, o, o,
=, =, =, =, =, =, =,
u, u, u, u, u, u, u,
u, u, u, u, u, u, u,
u, u, u, u, u, u, u,
Mein bisherige Lösung:
Code:
    public static void fuelleOberesDreieck(char[][] feld, char zeichen){
        char mitte = '=';
        char unten = 'u';
        char oben ='o';
        for(int i=0;i<feld.length;i++){
            for(int j=0;j<feld[i].length; j++){
                if(i<feld.length/2)
                    feld[i][j] = oben;
                if(i<feld.length/2 && i+j==feld.length-2 || i+1==j || j==feld.length/2){
                        feld[i][j] = zeichen;
                }
                if(i==feld.length/2)
                    feld[i][j] = mitte;
                if(i>feld.length/2)
                    feld[i][j] = unten;
            }
        }
    }

Jedoch ergibt sich daraus nur dieses Muster:
o, A, o, A, o, A, o,
o, o, A, A, A, o, o,
o, o, o, A, o, o, o,
=, =, =, =, =, =, =,
u, u, u, u, u, u, u,
u, u, u, u, u, u, u,
u, u, u, u, u, u, u,

Vielen Dank schonmal für die Antworten.
 
Versuch mal das hier.
Java:
public static void fuelleOberesDreieck(char[][] feld, char zeichen) {
    for(int zeile = 0; zeile < feld.length/2; zeile++) {
        for(int i = feld[0].length/2 - feld.length/2 + zeile + 1; i < feld[0].length/2 + feld.length/2 - zeile; i++) {
          feld[zeile][i] = zeichen;
        }
    }
}
 

Zurück
Oben