Skip to content
Snippets Groups Projects
Commit 65935fb2 authored by Peter Hertkorn's avatar Peter Hertkorn
Browse files

Add base classes for exercise

parent 62cae51d
No related branches found
No related tags found
No related merge requests found
Showing
with 351 additions and 0 deletions
package beobachter;
import java.util.Observable;
import java.util.Observer;
public class SchreckwertBeobachter implements Observer {
@Override
public void update(Observable observable, Object data) {
}
}
package gebaeude;
public interface Gebaeude {
public void darstellen();
}
package gebaeude;
public class Hoehle implements Gebaeude {
public void darstellen() {
System.out.println("Eine H�hle");
}
}
package gebaeude;
public class Schloss implements Gebaeude {
public void darstellen() {
System.out.println("Ein Schloss");
};
}
package gegenstaende;
public class Clownsnase extends Gegenstand {
public Clownsnase() {
super();
schreckwert = -3;
beschreibung = "Clownsnase";
}
}
package gegenstaende;
public class Frankensteinschraube extends Gegenstand {
public Frankensteinschraube() {
super();
schreckwert = 1;
beschreibung = "Frankenstein-Schraube";
}
}
package gegenstaende;
public abstract class Gegenstand {
protected int schreckwert;
protected String beschreibung;
public int getSchreckwert() {
return schreckwert;
}
public String getBeschreibung() {
return beschreibung;
}
}
package gegenstaende;
public class Hexenmaske extends Gegenstand {
public Hexenmaske() {
super();
schreckwert = 2;
beschreibung = "Hexenmaske";
}
}
package geister;
public interface Geist {
public void anzeigen();
}
package geister;
public enum GeistTyp {
POLTERGEIST,
SUMPFGEIST
}
package gelaende;
public class Gebirge implements Gelaende {
public void darstellen() {
System.out.println("Gebirgslandschaft");
}
}
package gelaende;
public interface Gelaende {
public void darstellen();
}
package gelaende;
public class Sumpfgebiet implements Gelaende {
public void darstellen() {
System.out.println("Ein Sumpfgebiet");
}
}
package monster;
import monster.Monster;
public class Drache extends Monster {
public Drache() {
super();
schreckwert = 5;
}
public void darstellenMonster() {
System.out.println("Ich bin ein Drache mit Schreckwert: " + berechneSchreckwert());
}
}
package monster;
public class Kobold extends Monster {
public Kobold() {
super();
schreckwert = 0;
}
public void darstellenMonster() {
System.out.println("Ich bin ein Kobold mit Schreckwert: " + berechneSchreckwert());
}
}
package monster;
public class Kruemelmonster extends Monster {
public Kruemelmonster() {
super();
schreckwert = -5;
}
public void darstellenMonster() {
System.out.println("Ich bin ein Kruemelmonster mit Schreckwert: " + berechneSchreckwert());
}
}
package monster;
import java.util.ArrayList;
import java.util.Iterator;
import gegenstaende.Gegenstand;
public abstract class Monster {
protected int schreckwert;
protected ArrayList<Gegenstand> gegenstaende;
public Monster() {
gegenstaende = new ArrayList<Gegenstand>();
}
public abstract void darstellenMonster();
public void addGegenstand(Gegenstand g) {
gegenstaende.add(g);
}
public Iterator<Gegenstand> getGegenstaende() {
return gegenstaende.iterator();
}
public int berechneSchreckwert() {
int sum;
sum = schreckwert;
Iterator<Gegenstand> i = getGegenstaende();
while (i.hasNext()) {
sum = sum + ((Gegenstand)i.next()).getSchreckwert();
}
return sum;
}
public void darstellen() {
darstellenMonster();
Iterator<Gegenstand> i = getGegenstaende();
while (i.hasNext()) {
System.out.println("Ich besitze: " + ((Gegenstand)i.next()).getBeschreibung());
}
}
}
package monster;
import gegenstaende.Hexenmaske;
public class TestDrive {
public static void main(String[] args) {
// Observer beobachter;
// beobachter = new SchreckwertBeobachter();
Monster kruemelmonster = new Kruemelmonster();
kruemelmonster.darstellen();
// kruemelmonster.addObserver(beobachter);
// kruemelmonster.kommunizieren();
System.out.println();
Monster kobold = new Kobold();
kobold.darstellen();
// kobold.addObserver(beobachter);
// kobold.kommunizieren();
kobold.addGegenstand(new Hexenmaske());
kobold.darstellen();
// kobold.kommunizieren();
System.out.println();
// Geist poltergeist = new Poltergeist();
// poltergeist.anzeigen();
// System.out.println();
//
// Monster sumpfgeist = new GeistAdapter(new Sumpfgeist());
// sumpfgeist.darstellen();
// sumpfgeist.addObserver(beobachter);
// sumpfgeist.kommunizieren();
// sumpfgeist.addGegenstand(new Clownsnase());
// sumpfgeist.darstellen();
// sumpfgeist.kommunizieren();
// System.out.println();
//
// Monsterfabrik fabrik = new SchrecklicheMonsterfabrik();
// Monster drache = fabrik.createMonster("Drache");
// drache.darstellen();
// drache.kommunizieren();
// System.out.println();
//
// Monsterfabrik monsterFabrik = new Monsterfabrik();
// Monster fabrikKobold = monsterFabrik.createMonster("Kobold");
// fabrikKobold.darstellen();
// fabrikKobold.kommunizieren();
// System.out.println();
//
// Monster fabrikSumpfgeist = new GeistAdapter(Geisterfabrik.createGeist(GeistTyp.SUMPFGEIST));
// fabrikSumpfgeist.darstellen();
// fabrikSumpfgeist.kommunizieren();
// System.out.println();
//
// Spielgenerator generator = new MonsterSpielGenerator();
// Monster monsterSpielKreatur = generator.createKreatur();
// Gebaeude monsterSpielGebaeude = generator.createGebaeude();
// Gelaende monsterSpielGelaende = generator.createGelaende();
// monsterSpielKreatur.darstellen();
// monsterSpielGebaeude.darstellen();
// monsterSpielGelaende.darstellen();
// System.out.println();
//
// generator = new GeisterSpielGenerator();
// Monster geisterSpielKreatur = generator.createKreatur();
// Gebaeude geisterSpielGebaeude = generator.createGebaeude();
// Gelaende geisterSpielGelaende = generator.createGelaende();
// geisterSpielKreatur.darstellen();
// geisterSpielGebaeude.darstellen();
// geisterSpielGelaende.darstellen();
// System.out.println();
// Monster testMonster = new Drache();
// testMonster.darstellen();
// testMonster.addObserver(beobachter);
// testMonster.kommunizieren();
// testMonster.aufstehenEreignis(); // schlafen -> essen
// testMonster.arbeitenEreignis(); // essen -> arbeiten
// testMonster.ausruhenEreignis(); // arbeiten -> ausruhen
// testMonster.schlafenEreignis(); // ausruhen -> schlafen
// testMonster.aufstehenEreignis();
// testMonster.hexeKommtEreignis();
// testMonster.verletztEreignis();
// testMonster.geheiltEreignis();
// testMonster.hexeGehtEreignis();
// System.out.println();
}
}
Ich bin ein Kruemelmonster mit Schreckwert: -5
Ich erzaehle Witze
Ich bin ein Kobold mit Schreckwert: 0
Ich mache Smalltalk
Beobachter meldet: Schreckwert geändert: 2
Ich bin ein Kobold mit Schreckwert: 2
Ich besitze: Hexenmaske
Ich mache den Menschen Angst
Huhuuu. Ich bin ein Poltergeist
Tssssss. Der Sumpfgeist wird Dich holen.
Ich mache den Menschen Angst
Beobachter meldet: Schreckwert geändert: -1
Tssssss. Der Sumpfgeist wird Dich holen.
Ich besitze: Clownsnase
Ich erzaehle Witze
Ich bin ein Drache mit Schreckwert: 6
Ich besitze: Frankensteinschraube
Ich mache den Menschen Angst
Ich bin ein Kobold mit Schreckwert: 0
Ich mache Smalltalk
Tssssss. Der Sumpfgeist wird Dich holen.
Ich mache den Menschen Angst
Ich bin ein Kobold mit Schreckwert: 0
Eine Höhle
Gebirgslandschaft
Huhuuu. Ich bin ein Poltergeist
Ein Schloss
Ein Sumpfgebiet
Ich bin ein Drache mit Schreckwert: 5
Ich mache den Menschen Angst
Aufwachen
Aufstehen
Arbeiten
Ausruhen
Schlafen
Einschlafen
Aufwachen
Aufstehen
Kämpfen
Heilen
Kämpfen
Schlafen
Einschlafen
\ No newline at end of file
package spielgenerator;
public enum SpielTyp {
GEISTERWELT,
MONSTERWELT
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment