Lernpfad:Lerntheke Marsrover/21: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 9: Zeile 9:
return true;
return true;
} else {
} else {
rerurn false;
return false;
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
{{Aufgabe:Start}}
{{Aufgabe:Start}}
# Analysiere den Quelltext oben und stelle Vermutungen über die Bedeutung der Schlüsselwörter <code>boolean</code>, <code>if</code>, <code>else</code> und <code>return</code> an. Notiere dir Stichpunkte im Heft.  
# Analysiere den Quelltext oben und stelle Vermutungen über die Bedeutung der Schlüsselwörter <code>boolean</code> und <code>return</code> an. Notiere dir Stichpunkte im Heft.  
# Vergleiche deine Vermutungen mit dem Text im Buch auf Seite XX.
# Vergleiche deine Vermutungen mit den Informationen im Buch auf Seite 219 und 221.
{{Aufgabe:End}}
{{Aufgabe:End}}


Zeile 35: Zeile 35:


{{Aufgabe:Start|Icon=Greenfoot Rover.png}}
{{Aufgabe:Start|Icon=Greenfoot Rover.png}}
Lade für die Aufgaben die unten gezeigte Karte.
# Implementiere die beiden Anfragen oben im Rover und probiere sie aus.  
# Implementiere die beiden Anfragen oben im Rover und probiere sie aus.  
# Programmiere den Rover in der <code>act()</code>-Methode dann so, dass er bis zum nächsten Hügel geradeaus fährt und auf dem Weg alle Markierungen einsammelt, die zwischen zwei Hügeln liegen. Unten findest du eine Karte zum Testen.  
# Programmiere den Rover in der <code>act()</code>-Methode dann so, dass er bis zum nächsten Hügel geradeaus fährt und auf dem Weg alle Markierungen einsammelt, die zwischen zwei Hügeln liegen.
# Implementiere eine Anfrage <code>public boolean gesteinUndMarkeVorhanden()</code>, die prüft, ob auf dem aktuellen Feld sowohl ein Gestein, als auch eine Marke vorhanden sind.  
# Implementiere eine Anfrage <code>public boolean gesteinUndMarkeVorhanden()</code>, die prüft, ob auf dem aktuellen Feld sowohl ein Gestein, als auch eine Marke vorhanden sind.  
# Implementiere eine Anfrage <code>public boolean gesteinOderMarkeVorhanden()</code>, die prüft, ob auf dem aktuellen Feld entweder ein Gestein, ''oder'' eine Marke vorhanden sind (oder auch beides).
# Implementiere eine Anfrage <code>public boolean gesteinOderMarkeVorhanden()</code>, die prüft, ob auf dem aktuellen Feld entweder ein Gestein, ''oder'' eine Marke vorhanden sind (oder auch beides).
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Roverkarte|.\n.\n.\n.\n....HH.H..HH.HH}}
{{Roverkarte|.\n.\n.\n.\n....H[.H][.H].H[.H][.H][.H][.H]\n.R.[.M][.G][.M][.G][.G][.M][.GM][.G][GM][.G][.G]H\n....[.H][.H][.H][.H]H.[.H][.H][.H]}}




{{Inhalt/Lerntheke}}
{{Inhalt/Lerntheke}}

Aktuelle Version vom 1. Oktober 2020, 15:43 Uhr

Anfragen

Du kannst auch selber den Rover um eigene Anfragen erweitern. Dazu musst du eine Methode implementieren, die als Rückgabe einen Wahrheitswert zurückgibt.

Ein Beispiel könnte so aussehen:

public boolean huegelVorneVorhanden() {
	if( huegelVorhanden("vorne") ) {
		return true;
	} else {
		return false;
	}
}
Icon Heft.png
Arbeitsauftrag
  1. Analysiere den Quelltext oben und stelle Vermutungen über die Bedeutung der Schlüsselwörter boolean und return an. Notiere dir Stichpunkte im Heft.
  2. Vergleiche deine Vermutungen mit den Informationen im Buch auf Seite 219 und 221.


Du kannst auch bedingte Anweisungen ineinander verschachteln und so komplexere Anfragen programmieren.

public boolean wasTesteIch() {
	if( huegelVorhanden("rechts") ) {
		if( huegelVorhanden("links") ) {
			return true;
		}
	}
	return false;
}
Icon Heft.png
Arbeitsauftrag

Analysiere die oben gezeigte Anfrage und versuche einen passenden Bezeichner für sie zu finden. Erkläre dazu, was die Anfrage überprüft.


Greenfoot Rover.png
Arbeitsauftrag

Lade für die Aufgaben die unten gezeigte Karte.

  1. Implementiere die beiden Anfragen oben im Rover und probiere sie aus.
  2. Programmiere den Rover in der act()-Methode dann so, dass er bis zum nächsten Hügel geradeaus fährt und auf dem Weg alle Markierungen einsammelt, die zwischen zwei Hügeln liegen.
  3. Implementiere eine Anfrage public boolean gesteinUndMarkeVorhanden(), die prüft, ob auf dem aktuellen Feld sowohl ein Gestein, als auch eine Marke vorhanden sind.
  4. Implementiere eine Anfrage public boolean gesteinOderMarkeVorhanden(), die prüft, ob auf dem aktuellen Feld entweder ein Gestein, oder eine Marke vorhanden sind (oder auch beides).
Kartendaten:
".\n.\n.\n.\n....H[.H][.H].H[.H][.H][.H][.H]\n.R.[.M][.G][.M][.G][.G][.M][.GM][.G][GM][.G][.G]H\n....[.H][.H][.H][.H]H.[.H][.H][.H]"