Zahlenschachbrett

Status
Nicht offen für weitere Antworten.

kuebi

Mitglied
Hi,
schonmal vorweg: bin totaler Anfäger, der erst angefangen hat Java zu lernen.

Das Problem:
Ich will, das die Konsole ein Schachbrett ausgibt, das folgendermaßen aussieht:

Code:
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

Ich hab zwar eine Musterlösung, wüsste aber gerne, warum meine nicht funktioniert:

Java:
public class Schachbrett {
	public static void main(String args[]) {
	int a, b, c, d, e, f, g, h;
	for(a = 1; a<=8; a++) {
		System.out.print(a);
	} System.out.println(" ");
	for(b = 2; b<=9; b++) {
		System.out.print(b);
	} System.out.println(" ");
	for(c = 3; b<=10; c++) {
			System.out.print(c);
	} System.out.println(" ");
	for(d = 4; b<=11; d++) {
			System.out.print(d);
	} System.out.println(" ");
	for(e = 5; e<=12; e++) {
			System.out.print(e);
	} System.out.println(" ");
	for(f = 6; f<=13; f++) {
			System.out.print(f);
	} System.out.println(" ");
	for(g = 7; g<=14; g++) {
			System.out.print(g);
	} System.out.println(" ");
	for(h = 8; h<=15; h++) {
			System.out.print(h);
	}
	}
}

vielen Dank schonmal für eure Hilfe,
Kübi
 
S

SlaterB

Gast
> for(c = 3; b<=10; c++) {

falsche Variable in der Bedingung, hast du noch ein zweites Mal,
außerdem fehlen Leerzeichen

sinnvoll ist es sowieso nicht, alles einzeln zu schreiben,
da könntest du ja fast
System.out.println("1 2 3 4 5 6");
kodieren ;)

na gut, bisschen besser ist deins schon
 

kuebi

Mitglied
> for(c = 3; b<=10; c++) {

falsche Variable in der Bedingung

stimmt..liegt an copy&paste..hatte keine Lust alles einzutippen...danke!

sinnvoll ist es sowieso nicht, alles einzeln zu schreiben,
da könntest du ja fast
System.out.println("1 2 3 4 5 6");
kodieren

ja, stimmt eigentlich schon...ich werd mich nochmal dransetzen und versuchen es etwas einfacher zu gestalten...

Aber vielen Dank dir für deine schnelle Antwort...jetzt funktioniert es auch einigermaßen.

Kuebi
 

sparrow

Top Contributor
Du kannst, ebenso wie die Spalten, natürlich auch die Zeilen in einer for-Schleife erstellen lassen.
Da kommt man dann auf ca. 8 Zeilen für die main-methode.
 

kuebi

Mitglied
Hey..ich glaub ich habs!!
Ist zwar auch etwas kompliziert, aber auf jeden Fall kürzer...

Java:
public class Schachbrett2 {
	public static void main(String args[]) {
		int a, b;
		b = 8;
		for(a = 1; a<=b; b++, System.out.println(" ")) {
			for(a = (b-7); a<=b; a++) {
				System.out.print(a + " ");
			if (a >= 9) {
				System.out.print("  ");
			}
				else {
					System.out.print("   ");
				}
		}
			if(b == 15) {
				break;
			}
		}
	}
}

@ Sparrow:
Wie meinst du das?
Habe ich in meiner for-Schleife nicht die Zeilen erstellt?
 
Zuletzt bearbeitet:
S

SlaterB

Gast
Java:
System.out.print(a + " ");
if (a >= 9) {
	System.out.print("  ");
}
else {
	System.out.print("   ");
}
->

Java:
System.out.print(a + "   ");
if (a < 10) {
	System.out.print(" ");
}
;)
 
Status
Nicht offen für weitere Antworten.

Oben