diff --git a/src/beobachter/SchreckwertBeobachter.java b/src/beobachter/SchreckwertBeobachter.java new file mode 100644 index 0000000000000000000000000000000000000000..0597b85865b969e53b4d4e291984bd76873340fe --- /dev/null +++ b/src/beobachter/SchreckwertBeobachter.java @@ -0,0 +1,12 @@ +package beobachter; + +import java.util.Observable; +import java.util.Observer; + +public class SchreckwertBeobachter implements Observer { + + @Override + public void update(Observable observable, Object data) { + } + +} diff --git a/src/gebaeude/Gebaeude.java b/src/gebaeude/Gebaeude.java new file mode 100644 index 0000000000000000000000000000000000000000..4ea9a272a3124287c8ffbcc50fabea9952ba6fff --- /dev/null +++ b/src/gebaeude/Gebaeude.java @@ -0,0 +1,7 @@ +package gebaeude; + +public interface Gebaeude { + + public void darstellen(); + +} diff --git a/src/gebaeude/Hoehle.java b/src/gebaeude/Hoehle.java new file mode 100644 index 0000000000000000000000000000000000000000..b609f09517076c15879e7557a8bff6d241934cbe --- /dev/null +++ b/src/gebaeude/Hoehle.java @@ -0,0 +1,9 @@ +package gebaeude; + +public class Hoehle implements Gebaeude { + + public void darstellen() { + System.out.println("Eine H�hle"); + } + +} diff --git a/src/gebaeude/Schloss.java b/src/gebaeude/Schloss.java new file mode 100644 index 0000000000000000000000000000000000000000..ba1c522f139dfdfc22984d523c01abfd454b6ece --- /dev/null +++ b/src/gebaeude/Schloss.java @@ -0,0 +1,9 @@ +package gebaeude; + +public class Schloss implements Gebaeude { + + public void darstellen() { + System.out.println("Ein Schloss"); + }; + +} diff --git a/src/gegenstaende/Clownsnase.java b/src/gegenstaende/Clownsnase.java new file mode 100644 index 0000000000000000000000000000000000000000..acd81a8dac7e9a15dabc07d9bfda06c0936de62b --- /dev/null +++ b/src/gegenstaende/Clownsnase.java @@ -0,0 +1,11 @@ +package gegenstaende; + +public class Clownsnase extends Gegenstand { + + public Clownsnase() { + super(); + schreckwert = -3; + beschreibung = "Clownsnase"; + } + +} diff --git a/src/gegenstaende/Frankensteinschraube.java b/src/gegenstaende/Frankensteinschraube.java new file mode 100644 index 0000000000000000000000000000000000000000..1d748b9c9ca1e764c2872c3fc219593632ef38dc --- /dev/null +++ b/src/gegenstaende/Frankensteinschraube.java @@ -0,0 +1,10 @@ +package gegenstaende; + +public class Frankensteinschraube extends Gegenstand { + + public Frankensteinschraube() { + super(); + schreckwert = 1; + beschreibung = "Frankenstein-Schraube"; + } +} diff --git a/src/gegenstaende/Gegenstand.java b/src/gegenstaende/Gegenstand.java new file mode 100644 index 0000000000000000000000000000000000000000..3af2b36b9c845ed96d94cd53bc4ff7845ca5b3bf --- /dev/null +++ b/src/gegenstaende/Gegenstand.java @@ -0,0 +1,14 @@ +package gegenstaende; + +public abstract class Gegenstand { + protected int schreckwert; + protected String beschreibung; + + public int getSchreckwert() { + return schreckwert; + } + + public String getBeschreibung() { + return beschreibung; + } +} diff --git a/src/gegenstaende/Hexenmaske.java b/src/gegenstaende/Hexenmaske.java new file mode 100644 index 0000000000000000000000000000000000000000..06820eeed1ff7d5a9616c01dd6d75a0a844593cb --- /dev/null +++ b/src/gegenstaende/Hexenmaske.java @@ -0,0 +1,10 @@ +package gegenstaende; + +public class Hexenmaske extends Gegenstand { + + public Hexenmaske() { + super(); + schreckwert = 2; + beschreibung = "Hexenmaske"; + } +} diff --git a/src/geister/Geist.java b/src/geister/Geist.java new file mode 100644 index 0000000000000000000000000000000000000000..8fdb507ba90551362eec4230ca090ef0aa996080 --- /dev/null +++ b/src/geister/Geist.java @@ -0,0 +1,6 @@ +package geister; + +public interface Geist { + public void anzeigen(); + +} diff --git a/src/geister/GeistTyp.java b/src/geister/GeistTyp.java new file mode 100644 index 0000000000000000000000000000000000000000..fe46fcf89eedf99db4f376b74b5c712525d98db3 --- /dev/null +++ b/src/geister/GeistTyp.java @@ -0,0 +1,6 @@ +package geister; + +public enum GeistTyp { + POLTERGEIST, + SUMPFGEIST +} diff --git a/src/gelaende/Gebirge.java b/src/gelaende/Gebirge.java new file mode 100644 index 0000000000000000000000000000000000000000..7baf35ec1d89dcab33397b50c334caa95d365019 --- /dev/null +++ b/src/gelaende/Gebirge.java @@ -0,0 +1,8 @@ +package gelaende; + +public class Gebirge implements Gelaende { + + public void darstellen() { + System.out.println("Gebirgslandschaft"); + } +} diff --git a/src/gelaende/Gelaende.java b/src/gelaende/Gelaende.java new file mode 100644 index 0000000000000000000000000000000000000000..1939475699d2d32302ca5dba86ac76870443d16b --- /dev/null +++ b/src/gelaende/Gelaende.java @@ -0,0 +1,6 @@ +package gelaende; + +public interface Gelaende { + + public void darstellen(); +} diff --git a/src/gelaende/Sumpfgebiet.java b/src/gelaende/Sumpfgebiet.java new file mode 100644 index 0000000000000000000000000000000000000000..e6919f99bc8208d117454fdec255e7194fe635f1 --- /dev/null +++ b/src/gelaende/Sumpfgebiet.java @@ -0,0 +1,8 @@ +package gelaende; + +public class Sumpfgebiet implements Gelaende { + + public void darstellen() { + System.out.println("Ein Sumpfgebiet"); + } +} diff --git a/src/monster/Drache.java b/src/monster/Drache.java new file mode 100644 index 0000000000000000000000000000000000000000..84b43b06c538bb46f2b90f919dd7b617aa38a862 --- /dev/null +++ b/src/monster/Drache.java @@ -0,0 +1,15 @@ +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()); + } +} diff --git a/src/monster/Kobold.java b/src/monster/Kobold.java new file mode 100644 index 0000000000000000000000000000000000000000..3122a242c9a06960292fe3754955de92e475d6a1 --- /dev/null +++ b/src/monster/Kobold.java @@ -0,0 +1,13 @@ +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()); + } +} diff --git a/src/monster/Kruemelmonster.java b/src/monster/Kruemelmonster.java new file mode 100644 index 0000000000000000000000000000000000000000..84c1d344c697e1a602680a91c23c2916a85cea68 --- /dev/null +++ b/src/monster/Kruemelmonster.java @@ -0,0 +1,13 @@ +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()); + } +} diff --git a/src/monster/Monster.java b/src/monster/Monster.java new file mode 100644 index 0000000000000000000000000000000000000000..d1170b5846d38529ebce196fb5d52f7c5633742e --- /dev/null +++ b/src/monster/Monster.java @@ -0,0 +1,45 @@ +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()); + } + } +} diff --git a/src/monster/TestDrive.java b/src/monster/TestDrive.java new file mode 100644 index 0000000000000000000000000000000000000000..8d00e51bb431a1ac04a30349e9e2351116de839e --- /dev/null +++ b/src/monster/TestDrive.java @@ -0,0 +1,91 @@ +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(); + + + } +} diff --git a/src/monster/monster_ausgabe.txt b/src/monster/monster_ausgabe.txt new file mode 100644 index 0000000000000000000000000000000000000000..96bfab8da73e6d7667b77433b0c9c96e918ef694 --- /dev/null +++ b/src/monster/monster_ausgabe.txt @@ -0,0 +1,52 @@ +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 diff --git a/src/spielgenerator/SpielTyp.java b/src/spielgenerator/SpielTyp.java new file mode 100644 index 0000000000000000000000000000000000000000..eca4f7b070bfbfb0b2aec007876d3251c44a3083 --- /dev/null +++ b/src/spielgenerator/SpielTyp.java @@ -0,0 +1,6 @@ +package spielgenerator; + +public enum SpielTyp { + GEISTERWELT, + MONSTERWELT +} diff --git a/src/spielgenerator/Spielgenerator.java b/src/spielgenerator/Spielgenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..3d9fcaea02807aebf5acd8a9e088164b63e5f7d5 --- /dev/null +++ b/src/spielgenerator/Spielgenerator.java @@ -0,0 +1,13 @@ +package spielgenerator; + +import gebaeude.Gebaeude; +import gelaende.Gelaende; +import monster.Monster; + +public interface Spielgenerator { + + public Monster createKreatur(); + public Gebaeude createGebaeude(); + public Gelaende createGelaende(); + +} diff --git a/src/verhalten/Verhalten.java b/src/verhalten/Verhalten.java new file mode 100644 index 0000000000000000000000000000000000000000..076548f65063ad0c95a7c148c32fa0a804710753 --- /dev/null +++ b/src/verhalten/Verhalten.java @@ -0,0 +1,5 @@ +package verhalten; + +public interface Verhalten { + public void kommunizieren(); +}