Java-Programm zur Ausgabe einer Drachenform: Was ist hier falsch?

1 Antwort

1) Für jede Zeile musst du die Ausgabe von Leerzeichen mit einschließen.

+++*
++**
+****
******

Die Pluszeichen stellen hier repräsentativ die Leerzeichen dar.

Um die maximale Anzahl an Leerzeichen zu ermitteln (bzw. die Startmenge), könntest du die Hälfte der maximalen Spaltenzahl + 1 berechnen. Die Nachkommastelle kann durch eine Konversion zu int weggeschnitten werden.



Eine Schleife könnte dir helfen.

iteriere alle Zeilen
  gebe aktuelle Anzahl an Leerzeichen via Schleife aus
  verringere aktuelle Anzahl an Leerzeichen

  gebe aktuelle Anzahl an Sternchen via Schleife aus
  erhoehe aktuelle Anzahl an Sternchen

2) Du gibst die falsche Menge an Sternchen pro Zeile aus. Die Folge wäre 1 - 2 - 4 - 6. Du iterierst allerdings in Einerschritten, sodass es bei dir 1 - 2 - 3 - usw. ist.

Da wohl je Zeile stets zwei Sternchen hinzukommen/weggenommen werden sollen, könntest du in Zweierschritten iterieren. Einzige Sonderfälle stellen die erste und die letzte Zeile dar.

ifellinluv 
Fragesteller
 22.04.2021, 16:09

Wie soll ich denn das in Java schreiben?

0
regex9  22.04.2021, 16:33
@ifellinluv

Z.T. bedarf es nur Adaption und Modifikation des Codes, den du schon hast. Grundsätzlich reicht eine einfache Programmabfolge. Am Beispiel von 6 Sternchen als maximale Zahl:

gebe erste Zeile aus (3 Leerzeichen, 1 Sternchen)

gebe oberen Mittelteil aus (2 - 0 Leerzeichen, 2 - 6 Sternchen)
gebe unteren Mittelteil aus (0 - 2 Leerzeichen 6 - 2 Sternchen)

gebe letzte Zeile aus (3 Leerzeichen, 1 Sternchen)

Grundvoraussetzung ist, dass du dich mit Schleifen auseinandergesetzt hast, was, laut dem obigen Code, der Fall war.

1