Lernpfad:Lerntheke Marsrover/30

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Marken-Maler

Der Rover ist auch künstlerisch begabt. Er möchte mit seinen Marken gerne einige Bilder malen. Dazu bekommt er einen Text mit Bildinformationen zum Beispiel wird dieses Bild

Rover Invader.png

in folgender Form codiert:

...x.....x...
....x...x....
...xxxxxxx...
..xx.xxx.xx..
.xxxxxxxxxxx.
.x.xxxxxxx.x.
.x.x.....x.x.
....xx.xx....

Die Eingabe der Bilddaten erfolgt dabei als String-Parameter in einer Methode. Dazu werden Zeilenumbrüche mit dem Sonderzeichen \n maskiert. Aus dem Bild oben wird dann:

"...x.....x...\n....x...x....\n...xxxxxxx...\n..xx.xxx.xx..\n.xxxxxxxxxxx.\n.x.xxxxxxx.x.\n.x.x.....x.x.\n....xx.xx...."
Greenfoot Rover.png
Arbeitsauftrag

Programmiere eine Methode maleMarkenbild( String pBilddaten ), die einen Text als Parameter erhält und aus diesem ein Bild aus Marken in die Welt "malt".


Um den Text mit den Bilddaten zu verarbeiten, helfen dir die String-Methoden von Java. Vor allem diese:

.charAt(pos) Ermittelt das Zeichen an der Stelle pos im Text. Es wird bei 0 angefangen zu zählen. "Hallo".charAt(0); // ergibt 'H'
"hallo".charAt(2); // ergibt 'l'
.split(str) Zerteilt den Text bei jedem Vorkommen des Textes str. Um den Text in einzelne Zeilen zu zerlegen kann der Teiler "\n" benutzt werden. "Hallo Welt".split(" "); // ergibt 'Hallo' und "Welt"

Du kannst den Text mit split in einzelne Teile aufteilen und jeden Teil einzeln bearbeiten, indem Du eine besondere Form einer Schleife benutzt:

for( String zeile: pBilddaten.split("\n") ) {
  // Tue etwas mit zeile, z.B.
  zeile.charAt(0);
}