Initial commit of the source files.
This commit is contained in:
parent
a9fdcf84e0
commit
44babda114
|
@ -0,0 +1,74 @@
|
||||||
|
/**
|
||||||
|
* Objekte dieser Klasse halten Informationen über Befehle,
|
||||||
|
* die der Benutzer eingegeben hat. Ein Befehl besteht momentan
|
||||||
|
* aus zwei Zeichenketten: einem Befehlswort und einem zweiten
|
||||||
|
* Wort. Beim Befehl "nimm karte" beispielsweise sind die beiden
|
||||||
|
* Zeichenketten "nimm" und "karte".
|
||||||
|
*
|
||||||
|
* Befehle werden von Benutzern dieser Klasse auf Gültigkeit
|
||||||
|
* überprüft. Wenn ein Spieler einen ungültigen Befehl eingegeben
|
||||||
|
* hat (ein unbekanntes Befehlswort), dann ist das Befehlswort <null>.
|
||||||
|
*
|
||||||
|
* Wenn der Befehl nur aus einem Wort bestand, dann ist das
|
||||||
|
* zweite Wort <null>.
|
||||||
|
*
|
||||||
|
* @author Michael Kölling und David J. Barnes
|
||||||
|
* @version 31.07.2011
|
||||||
|
*/
|
||||||
|
|
||||||
|
class Befehl
|
||||||
|
{
|
||||||
|
private String befehlswort;
|
||||||
|
private String zweitesWort;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erzeuge ein Befehlsobjekt. Beide Wörter müssen angegeben werden,
|
||||||
|
* aber jedes oder beide dürfen 'null' sein.
|
||||||
|
* @param erstesWort Das erste Wort des Befehls. Sollte
|
||||||
|
* 'null' sein, wenn dieser Befehl als nicht
|
||||||
|
* vom Spiel erkannt gekennzeichnet werden soll.
|
||||||
|
* @param zweitesWort Das zweite Wort des Befehls.
|
||||||
|
*/
|
||||||
|
public Befehl(String erstesWort, String zweitesWort)
|
||||||
|
{
|
||||||
|
befehlswort = erstesWort;
|
||||||
|
this.zweitesWort = zweitesWort;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Liefere das Befehlswort (das erste Wort) dieses Befehls.
|
||||||
|
* Wenn der Befehl nicht verstanden wurde, ist das Ergebnis
|
||||||
|
* 'null'.
|
||||||
|
* @return Das Befehlswort.
|
||||||
|
*/
|
||||||
|
public String gibBefehlswort()
|
||||||
|
{
|
||||||
|
return befehlswort;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Das zweite Wort dieses Befehls. Liefere 'null', wenn
|
||||||
|
* es kein zweites Wort gab.
|
||||||
|
*/
|
||||||
|
public String gibZweitesWort()
|
||||||
|
{
|
||||||
|
return zweitesWort;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return 'true', wenn dieser Befehl nicht verstanden wurde.
|
||||||
|
*/
|
||||||
|
public boolean istUnbekannt()
|
||||||
|
{
|
||||||
|
return (befehlswort == null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return 'true', wenn dieser Befehl ein zweites Wort hat.
|
||||||
|
*/
|
||||||
|
public boolean hatZweitesWort()
|
||||||
|
{
|
||||||
|
return (zweitesWort != null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
* Diese Klasse hält eine Aufzählung aller Befehlswörter, die dem
|
||||||
|
* Spiel bekannt sind. Mit ihrer Hilfe werden eingetippte Befehle
|
||||||
|
* erkannt.
|
||||||
|
*
|
||||||
|
* @author Michael Kölling und David J. Barnes
|
||||||
|
* @version 31.07.2011
|
||||||
|
*/
|
||||||
|
|
||||||
|
class Befehlswoerter
|
||||||
|
{
|
||||||
|
// ein konstantes Array mit den gültigen Befehlswörtern
|
||||||
|
private static final String gueltigeBefehle[] = {
|
||||||
|
"go", "quit", "help", "look"
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Konstruktor - initialisiere die Befehlswörter.
|
||||||
|
*/
|
||||||
|
public Befehlswoerter()
|
||||||
|
{
|
||||||
|
// nichts zu tun momentan...
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prüfe, ob eine gegebene Zeichenkette ein gültiger
|
||||||
|
* Befehl ist.
|
||||||
|
* @return 'true', wenn die gegebene Zeichenkette ein gültiger
|
||||||
|
* Befehl ist, 'false' sonst.
|
||||||
|
*/
|
||||||
|
public boolean istBefehl(String eingabe)
|
||||||
|
{
|
||||||
|
for(int i = 0; i < gueltigeBefehle.length; i++) {
|
||||||
|
if(gueltigeBefehle[i].equals(eingabe))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// Wenn wir hierher gelangen, wurde die Eingabe nicht
|
||||||
|
// in den Befehlswörter gefunden.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
import java.util.Scanner;
|
||||||
|
import java.util.StringTokenizer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dieser Parser liest Benutzereingaben und wandelt sie in
|
||||||
|
* Befehle für das Adventure-Game um. Bei jedem Aufruf
|
||||||
|
* liest er eine Zeile von der Konsole und versucht, diese als
|
||||||
|
* einen Befehl aus bis zu zwei Wörtern zu interpretieren. Er
|
||||||
|
* liefert den Befehl als ein Objekt der Klasse Befehl zurück.
|
||||||
|
*
|
||||||
|
* Der Parser verfügt über einen Satz an bekannten Befehlen. Er
|
||||||
|
* vergleicht die Eingabe mit diesen Befehlen. Wenn die Eingabe
|
||||||
|
* keinen bekannten Befehl enthält, dann liefert der Parser ein als
|
||||||
|
* unbekannter Befehl gekennzeichnetes Objekt zurück.
|
||||||
|
*
|
||||||
|
* @author Michael Kölling und David J. Barnes
|
||||||
|
* @version 31.07.2011
|
||||||
|
*/
|
||||||
|
class Parser
|
||||||
|
{
|
||||||
|
private Befehlswoerter befehle; // hält die gültigen Befehlswörter
|
||||||
|
private Scanner leser; // Lieferant für eingegebene Befehle
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erzeuge einen Parser, der Befehle von der Konsole einliest.
|
||||||
|
*/
|
||||||
|
public Parser()
|
||||||
|
{
|
||||||
|
befehle = new Befehlswoerter();
|
||||||
|
leser = new Scanner(System.in);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Den nächsten Befehl des Benutzers.
|
||||||
|
*/
|
||||||
|
public Befehl liefereBefehl()
|
||||||
|
{
|
||||||
|
String eingabezeile; // für die gesamte Eingabezeile
|
||||||
|
String wort1 = null;
|
||||||
|
String wort2 = null;
|
||||||
|
|
||||||
|
System.out.print("> "); // Eingabeaufforderung
|
||||||
|
|
||||||
|
eingabezeile = leser.nextLine();
|
||||||
|
|
||||||
|
// Finde bis zu zwei Wörter in der Zeile
|
||||||
|
Scanner zerleger = new Scanner(eingabezeile);
|
||||||
|
if(zerleger.hasNext()) {
|
||||||
|
wort1 = zerleger.next(); // erstes Wort lesen
|
||||||
|
if (zerleger.hasNext()) {
|
||||||
|
wort2 = zerleger.next(); // zweites Wort lesen
|
||||||
|
// Hinweis: Wir ignorieren den Rest der Eingabezeile.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Jetzt prüfen, ob der Befehl bekannt ist. Wenn ja, erzeugen
|
||||||
|
// wir das passende Befehl-Objekt. Wenn nicht, erzeugen wir
|
||||||
|
// einen unbekannten Befehl mit 'null'.
|
||||||
|
if(befehle.istBefehl(wort1)) {
|
||||||
|
return new Befehl(wort1, wort2);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return new Befehl(null, wort2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
Projekt: Zuul-schlecht
|
||||||
|
Autoren: Michael Kölling und David J. Barnes
|
||||||
|
|
||||||
|
Dieses Projekt ist Teil des Zusatzmaterials zum Buch
|
||||||
|
|
||||||
|
Java lernen mit BlueJ - eine Einführung in die
|
||||||
|
objektorientierte Programmierung, 5. Auflage
|
||||||
|
David J. Barnes und Michael Kölling
|
||||||
|
Pearson Education Deutschland, 2012
|
||||||
|
|
||||||
|
Dieses Projekt ist das Grundgerüst für ein Adventure-Game.
|
||||||
|
In dieser Version hat es ein paar Räume und bietet dem Spieler die
|
||||||
|
Möglichkeit, sich zwischen diesen Räumen zu bewegen. Das ist alles.
|
||||||
|
|
||||||
|
Um ein Spiel zu starten, erzeugen Sie eine Instanz von 'Spiel' und rufen
|
||||||
|
die Methode 'spielen' auf.
|
||||||
|
|
||||||
|
Diese Version des Spiels enthält einige schlechte Entwurfsentscheidungen.
|
||||||
|
Sie sollte nicht als Basis für Erweiterungen am Projekt benutzt werden,
|
||||||
|
bevor diese problematischen Entwurfsentscheidungen korrigiert wurden.
|
||||||
|
Diese Version dient als ein Beispiel in der Diskussion über gute
|
||||||
|
und schlechte Entwürfe (Kapitel 6 im Buch).
|
||||||
|
|
||||||
|
In Kapitel 6 des Buches ist ausführlich beschrieben, welche Probleme
|
||||||
|
bestehen und wie sie behoben werden können.
|
||||||
|
|
||||||
|
Das Projekt 'Zuul-besser' enthält eine Version dieses Projektes mit
|
||||||
|
einer besser entworfenen Klassenstruktur, in der die im Buch
|
||||||
|
beschriebenen Schwächen behoben sind.
|
|
@ -0,0 +1,90 @@
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Diese Klasse modelliert Räume in der Welt von Zuul.
|
||||||
|
*
|
||||||
|
* Ein "Raum" repräsentiert einen Ort in der virtuellen Landschaft des
|
||||||
|
* Spiels. Ein Raum ist mit anderen Räumen über Ausgänge verbunden.
|
||||||
|
* Mögliche Ausgänge liegen im Norden, Osten, Süden und Westen.
|
||||||
|
* Für jede Richtung hält ein Raum eine Referenz auf den
|
||||||
|
* benachbarten Raum.
|
||||||
|
*
|
||||||
|
* @author Michael Kölling und David J. Barnes
|
||||||
|
* @version 31.07.2011
|
||||||
|
*/
|
||||||
|
public class Raum {
|
||||||
|
private String beschreibung;
|
||||||
|
private HashMap<String, Raum> ausgaenge;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erzeuge einen Raum mit einer Beschreibung. Ein Raum hat anfangs keine
|
||||||
|
* Ausgänge.
|
||||||
|
*
|
||||||
|
* @param beschreibung
|
||||||
|
* enthält eine Beschreibung in der Form "in einer Küche" oder
|
||||||
|
* "auf einem Sportplatz".
|
||||||
|
*/
|
||||||
|
public Raum(String beschreibung) {
|
||||||
|
this.beschreibung = beschreibung;
|
||||||
|
this.ausgaenge = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Definiert die Ausgänge dieses Raums.
|
||||||
|
*
|
||||||
|
* @param richtung
|
||||||
|
* Die Richtung (north, east, south, west)
|
||||||
|
* @param raum
|
||||||
|
* Der nächste Raum
|
||||||
|
*/
|
||||||
|
public void setzeAusgaenge(String richtung, Raum raum) {
|
||||||
|
ausgaenge.put(richtung, raum);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt den Raum für eine Richtung zurück
|
||||||
|
*
|
||||||
|
* @param richtung
|
||||||
|
* Die Richtung (north, east, south, west)
|
||||||
|
* @return Der nächste Raum
|
||||||
|
*/
|
||||||
|
public Raum gibAusgang(String richtung) {
|
||||||
|
return ausgaenge.get(richtung);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return die Beschreibung dieses Raums.
|
||||||
|
*/
|
||||||
|
public String gibBeschreibung() {
|
||||||
|
return beschreibung;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Liefert eine Beschreibung der Ausgänge dieses Raumes, bespielsweise
|
||||||
|
* "Ausgänge: north west".
|
||||||
|
*
|
||||||
|
* @return eine Beschreibung der verfügbaren Ausgänge
|
||||||
|
*/
|
||||||
|
public String gibAusgaengeAlsString() {
|
||||||
|
String resultat = "Ausgänge:";
|
||||||
|
Set<String> ausgaengeSet = ausgaenge.keySet();
|
||||||
|
for (String ausgang : ausgaengeSet) {
|
||||||
|
resultat += " " + ausgang;
|
||||||
|
}
|
||||||
|
return resultat;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Liefert eine lange Beschreibung dieses Raumes, in der Form
|
||||||
|
* Sie sind in der Küche
|
||||||
|
* Ausgänge: north west
|
||||||
|
*
|
||||||
|
* @return eine lange Beschreibung dieses Raumes.
|
||||||
|
*/
|
||||||
|
public String gibLangeBeschreibung() {
|
||||||
|
return "Sie sind " + beschreibung + ".\n" + gibAusgaengeAlsString();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,217 @@
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dies ist die Hauptklasse der Anwendung "Die Welt von Zuul".
|
||||||
|
* "Die Welt von Zuul" ist ein sehr einfaches, textbasiertes Adventure-Game. Ein
|
||||||
|
* Spieler kann sich in einer Umgebung bewegen, mehr nicht. Das Spiel sollte auf
|
||||||
|
* jeden Fall ausgebaut werden, damit es interessanter wird!
|
||||||
|
*
|
||||||
|
* Zum Spielen muss eine Instanz dieser Klasse erzeugt werden und an ihr die
|
||||||
|
* Methode "spielen" aufgerufen werden.
|
||||||
|
*
|
||||||
|
* Diese Instanz erzeugt und initialisiert alle anderen Objekte der Anwendung:
|
||||||
|
* Sie legt alle Räume und einen Parser an und startet das Spiel. Sie wertet
|
||||||
|
* auch die Befehle aus, die der Parser liefert, und sorgt für ihre Ausführung.
|
||||||
|
*
|
||||||
|
* @author Michael Kölling und David J. Barnes
|
||||||
|
* @version 31.07.2011
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class Spiel {
|
||||||
|
private final static String NORTH = "north";
|
||||||
|
private final static String EAST = "east";
|
||||||
|
private final static String SOUTH = "south";
|
||||||
|
private final static String WEST = "west";
|
||||||
|
|
||||||
|
private Parser parser;
|
||||||
|
private Raum aktuellerRaum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erzeuge ein Spiel und initialisiere die interne Raumkarte.
|
||||||
|
*/
|
||||||
|
public Spiel() {
|
||||||
|
raeumeAnlegen();
|
||||||
|
parser = new Parser();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erzeuge alle Räume und verbinde ihre Ausgänge miteinander.
|
||||||
|
*/
|
||||||
|
private void raeumeAnlegen() {
|
||||||
|
Raum draussen, hoersaal, cafeteria, labor, buero;
|
||||||
|
|
||||||
|
draussen = new Raum("vor dem Haupteingang der Universität");
|
||||||
|
hoersaal = new Raum("in einem Vorlesungssaal");
|
||||||
|
cafeteria = new Raum("in der Cafeteria der Uni");
|
||||||
|
labor = new Raum("in einem Rechnerraum");
|
||||||
|
buero = new Raum("im Verwaltungsbüro der Informatik");
|
||||||
|
|
||||||
|
draussen.setzeAusgaenge(EAST, hoersaal);
|
||||||
|
draussen.setzeAusgaenge(SOUTH, labor);
|
||||||
|
draussen.setzeAusgaenge(WEST, cafeteria);
|
||||||
|
|
||||||
|
hoersaal.setzeAusgaenge(WEST, draussen);
|
||||||
|
|
||||||
|
cafeteria.setzeAusgaenge(EAST, draussen);
|
||||||
|
|
||||||
|
labor.setzeAusgaenge(NORTH, draussen);
|
||||||
|
labor.setzeAusgaenge(EAST, buero);
|
||||||
|
|
||||||
|
buero.setzeAusgaenge(WEST, labor);
|
||||||
|
|
||||||
|
aktuellerRaum = draussen;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Die Hauptmethode zum Spielen. Läuft bis zum Ende des Spiels in einer
|
||||||
|
* Schleife.
|
||||||
|
*/
|
||||||
|
public void spielen() {
|
||||||
|
willkommenstextAusgeben();
|
||||||
|
|
||||||
|
// Die Hauptschleife. Hier lesen wir wiederholt Befehle ein
|
||||||
|
// und führen sie aus, bis das Spiel beendet wird.
|
||||||
|
|
||||||
|
boolean beendet = false;
|
||||||
|
while (!beendet) {
|
||||||
|
Befehl befehl = parser.liefereBefehl();
|
||||||
|
beendet = verarbeiteBefehl(befehl);
|
||||||
|
}
|
||||||
|
System.out.println("Danke für dieses Spiel. Auf Wiedersehen.");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Einen Begrüssungstext für den Spieler ausgeben.
|
||||||
|
*/
|
||||||
|
private void willkommenstextAusgeben() {
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("Willkommen zu Zuul!");
|
||||||
|
System.out
|
||||||
|
.println("Zuul ist ein neues, unglaublich langweiliges Spiel.");
|
||||||
|
System.out.println("Tippen sie 'help', wenn Sie Hilfe brauchen.");
|
||||||
|
System.out.println();
|
||||||
|
rauminfoAusgeben();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verarbeite einen gegebenen Befehl (führe ihn aus).
|
||||||
|
*
|
||||||
|
* @param befehl
|
||||||
|
* Der zu verarbeitende Befehl.
|
||||||
|
* @return 'true', wenn der Befehl das Spiel beendet, 'false' sonst.
|
||||||
|
*/
|
||||||
|
private boolean verarbeiteBefehl(Befehl befehl) {
|
||||||
|
boolean moechteBeenden = false;
|
||||||
|
|
||||||
|
if (befehl.istUnbekannt()) {
|
||||||
|
System.out.println("Ich weiss nicht, was Sie meinen...");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
String befehlswort = befehl.gibBefehlswort();
|
||||||
|
if (befehlswort.equals("help")) {
|
||||||
|
hilfstextAusgeben();
|
||||||
|
} else if (befehlswort.equals("go")) {
|
||||||
|
wechsleRaum(befehl);
|
||||||
|
} else if (befehlswort.equals("quit")) {
|
||||||
|
moechteBeenden = beenden(befehl);
|
||||||
|
}
|
||||||
|
|
||||||
|
return moechteBeenden;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implementierung der Benutzerbefehle:
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gib Hilfsinformationen aus. Hier geben wir eine etwas alberne und unklare
|
||||||
|
* Beschreibung aus, sowie eine Liste der Befehlswörter.
|
||||||
|
*/
|
||||||
|
private void hilfstextAusgeben() {
|
||||||
|
System.out.println("Sie haben sich verlaufen. Sie sind allein.");
|
||||||
|
System.out.println("Sie irren auf dem Unigelände herum.");
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("Ihnen stehen folgende Befehle zur Verfügung:");
|
||||||
|
System.out.println(" go quit help");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Versuche, in eine Richtung zu gehen. Wenn es einen Ausgang gibt, wechsele
|
||||||
|
* in den neuen Raum, ansonsten gib eine Fehlermeldung aus.
|
||||||
|
*/
|
||||||
|
private void wechsleRaum(Befehl befehl) {
|
||||||
|
if (!befehl.hatZweitesWort()) {
|
||||||
|
// Gibt es kein zweites Wort, wissen wir nicht, wohin...
|
||||||
|
System.out.println("Wohin möchten Sie gehen?");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String richtung = befehl.gibZweitesWort();
|
||||||
|
|
||||||
|
// Wir versuchen, den Raum zu verlassen.
|
||||||
|
Raum naechsterRaum = aktuellerRaum.gibAusgang(richtung);
|
||||||
|
if (naechsterRaum == null) {
|
||||||
|
System.out.println("Dort ist keine Tür!");
|
||||||
|
} else {
|
||||||
|
aktuellerRaum = naechsterRaum;
|
||||||
|
rauminfoAusgeben();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* "quit" wurde eingegeben. Überprüfe den Rest des Befehls, ob das Spiel
|
||||||
|
* wirklich beendet werden soll.
|
||||||
|
*
|
||||||
|
* @return 'true', wenn der Befehl das Spiel beendet, 'false' sonst.
|
||||||
|
*/
|
||||||
|
private boolean beenden(Befehl befehl) {
|
||||||
|
if (befehl.hatZweitesWort()) {
|
||||||
|
System.out.println("Was soll beendet werden?");
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true; // Das Spiel soll beendet werden.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void rauminfoAusgeben() {
|
||||||
|
|
||||||
|
// Lösung A6
|
||||||
|
System.out.println(aktuellerRaum.gibLangeBeschreibung());
|
||||||
|
|
||||||
|
// Lösung A3
|
||||||
|
// System.out.println("Sie sind " + aktuellerRaum.gibBeschreibung());
|
||||||
|
|
||||||
|
// Lösung A5
|
||||||
|
// System.out.println(aktuellerRaum.gibAusgaengeAlsString());
|
||||||
|
|
||||||
|
// Lösung A3
|
||||||
|
// System.out.print("Ausgänge: ");
|
||||||
|
// if (aktuellerRaum.nordausgang != null) {
|
||||||
|
// System.out.print("north ");
|
||||||
|
// }
|
||||||
|
// if (aktuellerRaum.ostausgang != null) {
|
||||||
|
// System.out.print("east ");
|
||||||
|
// }
|
||||||
|
// if (aktuellerRaum.suedausgang != null) {
|
||||||
|
// System.out.print("south ");
|
||||||
|
// }
|
||||||
|
// if (aktuellerRaum.westausgang != null) {
|
||||||
|
// System.out.print("west ");
|
||||||
|
// }
|
||||||
|
// System.out.println();
|
||||||
|
|
||||||
|
// Lösung A4
|
||||||
|
// System.out.print("Ausgänge: ");
|
||||||
|
// if (aktuellerRaum.gibAusgang(NORTH) != null) {
|
||||||
|
// System.out.print("north ");
|
||||||
|
// }
|
||||||
|
// if (aktuellerRaum.gibAusgang(EAST) != null) {
|
||||||
|
// System.out.print("east ");
|
||||||
|
// }
|
||||||
|
// if (aktuellerRaum.gibAusgang(SOUTH) != null) {
|
||||||
|
// System.out.print("south ");
|
||||||
|
// }
|
||||||
|
// if (aktuellerRaum.gibAusgang(WEST) != null) {
|
||||||
|
// System.out.print("west ");
|
||||||
|
// }
|
||||||
|
// System.out.println();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,103 @@
|
||||||
|
#BlueJ package file
|
||||||
|
dependency1.from=Parser
|
||||||
|
dependency1.to=Befehlswoerter
|
||||||
|
dependency1.type=UsesDependency
|
||||||
|
dependency2.from=Parser
|
||||||
|
dependency2.to=Befehl
|
||||||
|
dependency2.type=UsesDependency
|
||||||
|
dependency3.from=Spiel
|
||||||
|
dependency3.to=Parser
|
||||||
|
dependency3.type=UsesDependency
|
||||||
|
dependency4.from=Spiel
|
||||||
|
dependency4.to=Raum
|
||||||
|
dependency4.type=UsesDependency
|
||||||
|
dependency5.from=Spiel
|
||||||
|
dependency5.to=Befehl
|
||||||
|
dependency5.type=UsesDependency
|
||||||
|
objectbench.height=100
|
||||||
|
objectbench.width=552
|
||||||
|
package.editor.height=497
|
||||||
|
package.editor.width=759
|
||||||
|
package.editor.x=662
|
||||||
|
package.editor.y=297
|
||||||
|
package.numDependencies=5
|
||||||
|
package.numTargets=6
|
||||||
|
package.showExtends=true
|
||||||
|
package.showUses=true
|
||||||
|
project.charset=windows-1252
|
||||||
|
readme.editor.height=526
|
||||||
|
readme.editor.width=748
|
||||||
|
readme.editor.x=991
|
||||||
|
readme.editor.y=186
|
||||||
|
target1.editor.height=526
|
||||||
|
target1.editor.width=748
|
||||||
|
target1.editor.x=574
|
||||||
|
target1.editor.y=47
|
||||||
|
target1.height=50
|
||||||
|
target1.name=Raum
|
||||||
|
target1.naviview.expanded=false
|
||||||
|
target1.showInterface=false
|
||||||
|
target1.type=ClassTarget
|
||||||
|
target1.typeParameters=
|
||||||
|
target1.width=80
|
||||||
|
target1.x=130
|
||||||
|
target1.y=220
|
||||||
|
target2.editor.height=984
|
||||||
|
target2.editor.width=1069
|
||||||
|
target2.editor.x=-1887
|
||||||
|
target2.editor.y=64
|
||||||
|
target2.height=50
|
||||||
|
target2.name=Spiel
|
||||||
|
target2.naviview.expanded=false
|
||||||
|
target2.showInterface=false
|
||||||
|
target2.type=ClassTarget
|
||||||
|
target2.typeParameters=
|
||||||
|
target2.width=80
|
||||||
|
target2.x=40
|
||||||
|
target2.y=70
|
||||||
|
target3.height=50
|
||||||
|
target3.name=Note
|
||||||
|
target3.showInterface=false
|
||||||
|
target3.type=EnumTarget
|
||||||
|
target3.typeParameters=
|
||||||
|
target3.width=80
|
||||||
|
target3.x=70
|
||||||
|
target3.y=10
|
||||||
|
target4.editor.height=526
|
||||||
|
target4.editor.width=748
|
||||||
|
target4.editor.x=0
|
||||||
|
target4.editor.y=0
|
||||||
|
target4.height=50
|
||||||
|
target4.name=Befehl
|
||||||
|
target4.showInterface=false
|
||||||
|
target4.type=ClassTarget
|
||||||
|
target4.typeParameters=
|
||||||
|
target4.width=80
|
||||||
|
target4.x=130
|
||||||
|
target4.y=150
|
||||||
|
target5.editor.height=526
|
||||||
|
target5.editor.width=748
|
||||||
|
target5.editor.x=3
|
||||||
|
target5.editor.y=81
|
||||||
|
target5.height=50
|
||||||
|
target5.name=Befehlswoerter
|
||||||
|
target5.naviview.expanded=false
|
||||||
|
target5.showInterface=false
|
||||||
|
target5.type=ClassTarget
|
||||||
|
target5.typeParameters=
|
||||||
|
target5.width=110
|
||||||
|
target5.x=320
|
||||||
|
target5.y=150
|
||||||
|
target6.editor.height=526
|
||||||
|
target6.editor.width=748
|
||||||
|
target6.editor.x=0
|
||||||
|
target6.editor.y=0
|
||||||
|
target6.height=50
|
||||||
|
target6.name=Parser
|
||||||
|
target6.naviview.expanded=false
|
||||||
|
target6.showInterface=false
|
||||||
|
target6.type=ClassTarget
|
||||||
|
target6.typeParameters=
|
||||||
|
target6.width=80
|
||||||
|
target6.x=230
|
||||||
|
target6.y=20
|
Loading…
Reference in New Issue