i

Übungen

Erweiterungen und Übungen zu "Go Home"

Aufgabe 1 - Go Home-Varianten

Erweitere das Spiel nach einer oder mehrerer der folgenden Ideen:

  1. Es gibt mehrere Home-Felder. Der Spieler, der auf einem beliebigen Home-Feld ankommt, gewinnt.
  2. Es gibt ein Home-Feld für die rote Figur und ein anderes für die blaue Figur.
  3. Jeder Spieler hat zwei Figuren, die er ins Ziel bringen muss.
  4. Die Spiellänge ist auf z.B. 10 Züge pro Spieler limitiert. Falls dann noch keiner der Spieler auf dem Home-Feld ist, gewinnt derjenige, dessen Figur näher am Home-Feld ist.
  5. ... sei kreativ und lasse Dir eigene Varianten des Spiels einfallen!

Aufgabe 2 - Greenfoot-Version

Go Home lässt sich auch grafisch in Greenfoot realisieren. Man muss dazu überlegen wie die Steuerung der Figuren erfolgen soll. Es gibt hier unterschiedliche Wege wie z.B. Methoden in der Welt, auf die man durch Rechts-Klick auf die Welt zugreifen kann, oder grafische Actor-Objekte oder eine Steuerung über die Tastatur etc. Außerdem kann man das Spiel natürlich noch beliebig variieren, so dass Figuren sich gegenseitig stören können, oder bei Kollision mit bestimmten Objekten an den Rand der Welt verschoben werden etc. Finde Deinen eigenen Weg und implementiere das Spiel in Greenfoot.

Weitere Übungen

Aufgabe 3 - (Wo)manizer

(Wo)manizer ist ein Spiel für echte Machos (bzw. deren weibliche Kolleginnen), oder solche die es gerne werden möchten. Um einen Eindruck zu bekommen, kannst Du Dir ein Beispiel-Spiel anschauen:

Die Anforderungen lauten folgendermaßen (In der Variante Womanizer):

  • Es gibt ein Objekt der Klasse Boy, das sich über die Pfeiltasten der Tastatur steuern lässt.
  • Der Junge hat einen Punktestand, der mit jedem act-Schritt um eins erhöht wird.
  • Es werden mit einer Wahrscheinlichkeit von 5% pro act-Schritt Hamburger auf einer zufälligen Position der Welt erzeugt.
  • Ein Hamburger verschwindet nach 20 act-Schritten wieder automatisch.
  • Trifft der Junge auf einen Hamburger bekommt er 100 Extrapunkte und der Hamburger wird entfernt.
  • Trifft er auf ein Mädchen, dann läuft dieses ihm hinterher. Es läuft immer das Mädchen hinterher, das er als letztes getroffen hat.
  • Wenn er mehr als 20 act-Schritte auf kein anderes Mädchen trifft, dann ist das Spiel vorbei. Greenfoot hält dann an und der Punktestand wird ausgegeben.

Lade Dir die Vorlage zum Spiel herunter und implementiere es gemäß den genannten Anforderungen. Möchtest Du lieber die Männer nach Deiner Pfeife tanzen lassen, darfst Du natürlich gerne die "Manizer"-Variante des Spiels erstellen.

Aufgabe 4 - Referenzen auf Hunde

Gegeben sei die Implementierung der Klasse Hund:

class Hund{
	String name;
	int alter;

	Hund(String n, int a){
		name = n;
		alter = a;
	}

	void bellen(){
		System.out.println("Wuff, ich bin " + name + " und " + alter + " Jahre alt.");
	}
}

Beschreibe unter Zuhilfenahme eines Objektdiagrammes genau was der folgende Code bewirkt:

new Hund("Bello", 5);           // 1
Hund h1 = new Hund("Wuffi", 3); // 2
Hund h2 = new Hund("Otto", 6);  // 3
Hund h3 = h1;                   // 4
h1.bellen();                    // 5
h2.bellen();                    // 6
h3.bellen();                    // 7
h1.alter = 4;                   // 8
h2.alter = 7;                   // 9
h3.alter = 5;                   // 10
h1.bellen();                    // 11
h2.bellen();                    // 12
h3.bellen();                    // 13
h1 = null;                      // 14
h1.bellen();                    // 15
h3 = new Hund("Otto", 7);       // 16
System.out.println(h2 == h3);   // 17

Aufgabe 5 - Java und String

Zeichenketten sind in Java Objekte. Bei der Benutzung von Zeichenketten gibt es allerdings ein paar Besonderheiten zu beachten. Gehe von folgender Codesequenz im Codepad aus:

Codesequenz für Strings in Java

Erkläre mit Hilfe eines Objektdiagramms die markierten Ausdrücke. Gehe dabei von folgender, vereinfachten Darstellung für String-Objekte aus:

Vereinfachtes Objektdiagramm für String

Warum sollte man Zeichenketten normalerweise nicht mit ==, sondern mit der equals(..)-Methode vergleichen?

Suche

v
7.1.3.1.6
dev.inf-schule.de/oop/java/beziehungen/gohome/uebungen
dev.inf-schule.de/7.1.3.1.6
dev.inf-schule.de/@/page/XGw1DsiyBRlF2haq

Rückmeldung geben