Java für C(#|++)-Umsteiger

Klassen und Beziehungen

Einfache Klassen

Eine Klasse Warrier und Wizard sollen zwei Typen in einem Computerspiel sein. Beide haben

Stärke und Intelligenz haben Wertebereiche von 0 bis 10. Überlege selbständig eine Vererbungsbeziehung.

Schreibe in Klasse Playground mit main(...)-Methode und baue zwei Krieger und zwei Zauberer auf.

Polymorphie und dynamisches Binden

Stärke und Intelligenz verbinden sich zu einer Spielstärke int getPower(), wobei beim Warrier gilt: strength * 2 + intelligence und beim Wizard: strength + intelligence * 2. Ganz mathematisch soll das ganze nicht sein, das Ergebnis soll eine zufällige Schwankung von 20% aufweisen (nach oben und unten).

Lasse die vier Typen gegeneinander antreten und schaue, wer gewinnt.

Einfache 1:n Assoziationen durch Datenstrukturen

Eine Landkarte besteht auch 20 x 20 "Kacheln". Jede Kachel kann eine Typ haben, etwa Acker, Wasser. Wie kann man das ausdrücken?

Zwei Spieler sollen auf der Landkarte stehen und die Spieler sollen über Methoden bewegt werden können. Auf dem Wasser stehen ist nicht möglich.

An der Klasse für die Landkarte soll eine Methode setActionOnPlayerCollision(PlayerCollision) zu finden sein; PlayerCollision ist eine Schnittstelle mit einer Operation onCollision(/*Typ?*/ player1, /*Typ*/ player2), die immer dann aufgerufen wird, wenn ein Spieler so bewegt wird, dass er mit einem anderen Spieler zusammentrifft. Eine Implementierung der Schnittstelle soll nun einen Kampf beginnen und ausgeben, welcher der beiden Spieler gewinnen würde.