Hallo allerseits
,
ich habe ein kleines Problem. Wir sollen ein Programm schreiben, bei dem als Ausgabe in der Konsole Rauten hintereinander in einem Koordinatensystem ausgegeben werden sollen. Dabei darf der User bestimmen wie groß die Gesamtbreite von der Koordinate x sein soll, wie Breit die Rauten sein sollen und wieviele Reihen es sein sollen. Ich habe folgenden code schonmal hinbekommen:
Die ausgabe ist allerdings total falsch :/. Ich habe probleme mit den for schleifen. Ich habe ja die Methode inRaute(). Wenn ich diese am ende benutze in der if verzweigung prüft der ob die Koordinaten in der Raute sind. Falls ja wird # ausgegeben ansonsten leerstelle. Wie bekomme ich allerdings hin, dass ich die Koordinaten richtig durchgehe? dachte einfach for(int y...) und for(int x...) würde reichen. Könnte mir jmd einen kleinen Tipp geben? Danke schonmal
Die Ausgabe soll z.b wie folgt sein:
Aufgabenstellung; - Beispielbild
ich habe ein kleines Problem. Wir sollen ein Programm schreiben, bei dem als Ausgabe in der Konsole Rauten hintereinander in einem Koordinatensystem ausgegeben werden sollen. Dabei darf der User bestimmen wie groß die Gesamtbreite von der Koordinate x sein soll, wie Breit die Rauten sein sollen und wieviele Reihen es sein sollen. Ich habe folgenden code schonmal hinbekommen:
Java:
public static boolean inRaute (double px, double py, double cx,
double cy, double b)
{
double dx = px - cx;
double dy = py - cy;
return Math.abs(dx) + Math.abs(dy) <= b;
}
public static void main (String[] args){
System.out.print("Geben Sie die gewuenschte Gesamtbreite ein: ");
int gesamtbreite = Integer.parseInt(System.console().readLine());
System.out.print("Geben Sie die gewuenschte Rautenbreite ein: ");
int b = Integer.parseInt(System.console().readLine());
System.out.print("Geben Sie die gewuenschte Reihenzahl ein: ");
int reihenzahl = Integer.parseInt(System.console().readLine());
double cx = b/2;
double cy = b/2;
for (int y = 0; y < reihenzahl; y++){
for (int x = 0; x < gesamtbreite; x++){
for (int z = 0; z < b; z++){
if(inRaute(x, y, cx, cy, b)){
System.out.print("#");
} else{
System.out.print(" ");
}
}
}
System.out.print("#");
}
}
}
Die ausgabe ist allerdings total falsch :/. Ich habe probleme mit den for schleifen. Ich habe ja die Methode inRaute(). Wenn ich diese am ende benutze in der if verzweigung prüft der ob die Koordinaten in der Raute sind. Falls ja wird # ausgegeben ansonsten leerstelle. Wie bekomme ich allerdings hin, dass ich die Koordinaten richtig durchgehe? dachte einfach for(int y...) und for(int x...) würde reichen. Könnte mir jmd einen kleinen Tipp geben? Danke schonmal
Die Ausgabe soll z.b wie folgt sein:
Aufgabenstellung; - Beispielbild
Zuletzt bearbeitet: