Schachbrett (8x8) programmieren

derJavaGuru

Mitglied
Hallo,o

ich hab von meiner Informatik Klasse folgende Aufgabe nach dem heutigen Thema Schleifen bekommen:

Erstellen Sie ein Schachbrett welches die Ausgabe wie folgt anzeigt:
1 2 3 4 5 6 7 8
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9 10
4 5 6 7 8 9 10 11
5 6 7 8 9 10 11 12
6 7 8 9 10 11 12 13
7 8 9 10 11 12 13 14
8 9 10 11 12 13 14 15

Des Weiteren wäre es wünschenswert wenn wir mit For Schleifen haben.

Jetzt stehe ich gewaltig auf dem Schlauch, da ich keinen Anhaltspunkt habe wie ich hier beginnen sollte...
Mein Versuch sieht bisher wie folgt aus:
Ich weiß, dass es ein 8x8 "Feld" ist. Bedeutet, dass das ich am besten mit einem Array arbeite?
Nach der 8 Zahl soll ein Zeilenumbruch stattfinden (Im code wäre dies "breite")
und ich habe insgesamt 8 Reihen.

Code:
public class Schachbrett{

    public static void main(String[] args)

    {

        int breite=8;

        int reihen=8;

        int ausgabe=0;

        for(int index=0; index<breite; index++)

        {

            ausgabe=ausgabe+1;

            System.out.print(ausgabe+" ");

       }   
    }
}

Damit kann ich schon mal die erste Zeile erfolgreich generieren... jetzt ist mir auch bewusst, dass ich noch weitere for Schleifen brauche und hier fängt mein Problem an.

Sobald ich eine Verschachtelung vornehme, kommen extrem hohe Werte raus. Ich finde auch keine sinnige Logik wann ein Zeilenumbruch stattfinden soll.

Ich wäre sehr dankbar, wenn mir jemand von euch Tipps geben könnte wie ich diese Aufgabe löse.

LG
 
Die Ausgabe der ersten Zeile macht ja unter dem Strich genau dieser Code:
Code:
        int ausgabe=0;
        for(int index=0; index<breite; index++) {
            ausgabe=ausgabe+1;
            System.out.print(ausgabe+" ");
       }

Wenn Du da nun eine Schleife drum machst für die Zeilen hast Du erst einmal jede Zeile gleich, d.h. es fängt mit 1 an.

Auf was musst Du ausgabe denn setzen, damit es nicht immer mit 1 anfängt sondern immer mit einem um eins höheren Wert?
Hast Du beim einfügen der äußeren Schleife denn evtl. etwas, was Du verwenden könntest?
 
Ok ich habe jetzt folgendes ausprobiert:
Ich habe die For Schleife mit einer "While" Schleife umklammert, welche genau 8 mal laufen soll.
Soweit so gut. hab jetzt ein Schachbrettmuster bekommen mit den Zahlen von 1-64... also kommen wir dem ganzen schon mal ein gutes Stück näher.

Dann habe ich mir deinen Vorschlag zu Herzen genommen.
Sprich"ausgabe" muss sich nach jeder abgeschlossenen for Schleife "resetten".
Also auf 0 setzen. Da dies aber sämtliche Zeilen gleich lassen wird habe ich ausgabe mit dem Schleifenzähler der While Schleifen versehen:
Damit kam ich dem Ergebnis schon näher, jedoch hatte ich die erste Zeile doppelt ausgegeben. Also wurde das Problem mit
Code:
ausgabe=i+1
gelöst.

Code:
public static void main(String[] args)
    {
        int breite=8;
        int reihen=8;
        int ausgabe=0;
        int i=0;
        
        while(i<reihen)
        {
            for(int index=0; index<breite; index++)
            {
                ausgabe=ausgabe+1;
                System.out.print(ausgabe+" ");
            }
        ausgabe=i+1;
        System.out.println();
        i++;       
        }   
    }
}

Und jetzt habe ich das richtige Ergebnis 🙂!
 
Ergänzung meinerseits, da es als for Schleife gewünscht ist sieht der Code nun wie folgt aus:
Code:
        for(int i=0; i<reihen; i++)
        {
            for(int index=0; index<breite; index++)
            {
                ausgabe=ausgabe+1;
                System.out.print(ausgabe+" ");
            }
        ausgabe=i+1;
        System.out.println();   
        }

Danke dir JustNobody,

Einen schönen Tag noch.

LG
 

Zurück
Oben