===== Lösung zu Aufgabe 3: Zeichne ein X in Ascii-Art ===== {{ :klassen1:eigene:pasted:20201108-203142.png}} Erweitere die Klasse ''AsciiArt'' von oben um eine Methode ''void zeichneX(int breite, int linienstärke, String farbe)'', die ein großes X aus lauter X-Zeichen zusammensetzt. Die Ausgabe von ''art.zeichneX(10, 2, Color.pink);'' sieht beispielsweise so aus, wie im Bild rechts zu sehen.
==== Erklärung ==== {{ :klassen1:eigene:aufgaben:aufgabe3:pasted:20201108-204449.png}} Es gibt verschiedene (gleich gute!) Möglichkeiten, diese Aufgabe zu lösen. Die vorliegende definiert zwei Variablen ''von1'' und ''bis1'', die festlegen, von welcher Spalte bis zu welcher Spalte die "X"-Zeichen des "Linksobennachrechtsunten"-Querbalkens in der aktuellen Zeile geschrieben werden und ''von2'' sowie ''bis2'' entsprechend für den "Rechtsobennachlinksunten"-Querbalken. In der Zeichnung rechts ist die anfängliche Belegung der Variablen für ein X mit Breite 20 und Linienstärke 3 zu sehen: $$von1 = 1$$ $$bis1 = 1 + 3 - 1 = 3$$ $$von2 = 20 - 3 + 1 = 18$$ $$bis2 = 20$$ Für jede Zeile durchläuft die Variable ''spalte'' die Werte von 1 bis 20 und für jeden Wert von ''spalte'' wird ein X ausgegeben oder ein Leerzeichen. Dabei wird folgende Regel angewandt: \\ \\ Falls (spalte >= von1 und spalte <= bis2) ODER (spalte >= von2 und spalte <= bis2) wird ein X ausgegeben, ansonsten ein Leerzeichen. Die X werden also - einfach gesagt - für die Spaltenbereichen von ''von1'' bis ''bis1'' und von ''von2'' bis ''bis2'' ausgegeben. \\ \\ Nach Beendigung jeder Zeile werden ''von1'' und ''bis1'' um 1 erhöht (der "Linksobennachrechtsunten"-Querbalken wandert also ein Zeichen nach rechts) und ''von2'' und ''bis2'' um 1 erniedrigt (der "Rechtsobennachlinksunten"-Querbalken wandert also ein Zeichen nach links).