Übungen
Erweiterungen und Übungen zu "Go Home"
Aufgabe 1 - Go Home-Varianten
Erweitere das Spiel nach einer oder mehrerer der folgenden Ideen:
- Um zu gewinnen muss man beide (anstatt nur eine) Figuren auf dem Home-Feld haben. Eine Figur, die auf dem Home-Feld ist, nimmt an den Bewegungen dann nicht mehr teil.
- 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 nächste Figur näher am Home-Feld ist, oder derjenige ...
- ... dessen Figuren im Durchschnitt näher am Home-Feld sind.
- Jeder Spieler darf einmal im Verlauf eines Spieles die Figuren neu zuordnen. Dazu werden zwei Figuren zufällig dem roten Spieler zugeordnet, die beiden anderen Figuren dem blauen Spieler.
- ... sei kreativ und lasse Dir eigene Varianten des Spiels einfallen!
Aufgabe 2 - Greenfoot-Version
Go Home lässt sich mit einigen Änderungen auch grafisch in Greenfoot realisieren. Man muss dazu z.B. die Koordinaten zum Gewinnen ändern. Außerdem muss man sich ü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
Gehe von folgender Codesequenz aus:
Erkläre mit Hilfe eines Objektdiagramms die markierten Ausdrücke. Gehe dabei von folgender, vereinfachten Darstellung für String-Objekte aus:
Warum sollte man Zeichenketten normalerweise nicht mit ==
, sondern mit
der equals(..)
-Methode vergleichen?