risiko.server.domain
Class SpielMgrImpl

java.lang.Object
  extended by java.util.Observable
      extended by risiko.server.domain.SpielMgrImpl
All Implemented Interfaces:
java.rmi.Remote, SpielMgr

public class SpielMgrImpl
extends java.util.Observable
implements SpielMgr

Haptverwaltungsklasse des Spiels.

Version:
2009-05-25
Author:
dgrosche

Constructor Summary
SpielMgrImpl()
          Konstruktor erstellt Unterverwaltungsklassen:
- Weltverwaltung
- Spielerverwaltung
- Kartenverwaltung
- Datenspeicherung
 
Method Summary
 void addClient(java.lang.String servicename)
          Fügt einen Client als Observer hinzu
 int addSpieler(java.lang.String name)
          Fügt neuen Spieler hinzu.
 void beendeZug()
          
Setzt nächsten Spieler in der Reihe aktiv.
 Spieler getAktiverSpieler()
          Gibt aktiven Spieler zurück
 java.util.Vector<Land> getAllLaender()
          Gibt komplette Länderliste zurück
 java.util.Vector<Spieler> getAllSpieler()
          Gibt alle Spieler zurück
 Land getAngreifer()
          Gibt Angreiferland zurück
 int getAnzSpieler()
           
 java.util.Vector<Land> getEigeneNachbarn(Land a)
          Gibt alle eigenen Nachbarn zurück
 int getEinheitenAngriff()
          Gibt Anzahl angreifender Einheiten zuürck
 java.util.Vector<int[]> getEinloesbareKarten()
           
 java.util.Vector<Land> getFremdeNachbarn(Land a)
          Gibt alle fremden Nacharn zurück
 java.util.Vector<Land> getLaender(Spieler spieler)
          Gibt alle Länder eines Spielers zurück
 java.util.Vector<Land> getNachbarn(Land a)
          Gibt alle Nachbarländer eines Landes zurück
 int getPhase()
          Gibt die Spielphase zurück

Phase 0: Hauptmenü
Phase 1: Angriffsmenü
Phase 2: Verschiebenmenü
Phase 3: Länder drucken
Phase 4: Zug beenden
Phase 5: Karten einlösen
Phase 6: Spiel speichern
Phase 7: Spiel laden
Phase 50: Verteidigen
Phase 60: Verstärkung setzen
Phase 70: Einheiten nachrücken
Phase 100: Spiel beenden
 int getVerstaerkung()
          Die zusätlichen Einheiten für aktuellen Spieler werden ermittelt.
 Land getVerteidiger()
          Gibt Verteidigerland zurück
 java.util.Vector<java.lang.Integer> getWuerfelAngreifer()
          Würfelzahlen des Angreifers
 java.util.Vector<java.lang.Integer> getWuerfelVerteidiger()
          Würfelzahlen des Verteidigers
 boolean isGewonnen()
          Prüft ob aktiver Spieler gewonnen hat.
 boolean isNachbar(Land a, Land b)
           
 boolean isSpielstart()
           
 void kartenEinloesen(int[] kartensatz)
          Löst einen Kartensatz ein (Spielphase: 5)
 java.lang.String laden()
          Lädt letzten Spielstand (Spielphase: 7)
 void notifyClients(java.lang.Object arg)
          Benachrichtigt alle Clients
 boolean pruefKarten()
          Prüft ob einlösbare Karten vorhanden sind (Spielphase: 5)
 java.util.Vector<java.lang.Integer> reihenfolge()
          Die Startreihenfolge wird ausgewürfelt.
 void setAnzSpieler(int anzSpieler)
           
 void setPhase(int wert)
          Setzt die Spielphase auf einen bestimmten Wert

Phase 0: Hauptmenü
Phase 1: Angriffsmenü
Phase 2: Verschiebenmenü
Phase 3: Länder drucken
Phase 4: Zug beenden
Phase 5: Karten einlösen
Phase 6: Spiel speichern
Phase 7: Spiel laden
Phase 50: Verteidigen
Phase 60: Verstärkung setzen
Phase 70: Einheiten nachrücken
Phase 100: Spiel beenden
 void setSpielstart(boolean spielstart)
           
 void setzeEinheiten(Land l, int x)
          Fügt x Einheiten zu Land l hinzu.
 java.lang.String speichern()
          Speichert den Spielstand (Spielphase: 6)
 void starteAngriff(Land a, Land b, int x)
          Startet einen neuen Angriff von a nach b mit x Angreifern (Spielphase: 1)
 void verschiebeEinheiten(Land a, Land b, int x)
          Verschiebt x Einheiten von Land a nach Land b (Spielphase: 2)
 void verteidige(int y)
          Legt Verteidigung fest und führt aktuellen Kampf durch.
 void verteileLaender()
          Die Länder werden gleichmäßig unter die Spieler aufgeteilt.
 void verteileMissionen()
          Die Missionen werden erstellt und auf die Spieler aufgeteilt.
 void weiter()
          Setzt entsprechend der Spielphase den Modus weiter.
 void weltErobern()
          Missioenen werden ersetzt durch Welterobermissionen
 
Methods inherited from class java.util.Observable
addObserver, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SpielMgrImpl

public SpielMgrImpl()
             throws java.rmi.RemoteException
Konstruktor erstellt Unterverwaltungsklassen:
- Weltverwaltung
- Spielerverwaltung
- Kartenverwaltung
- Datenspeicherung

Throws:
java.rmi.RemoteException
Method Detail

addSpieler

public int addSpieler(java.lang.String name)
               throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Fügt neuen Spieler hinzu.

Specified by:
addSpieler in interface SpielMgr
Parameters:
name - Spielername
Throws:
java.rmi.RemoteException

verteileLaender

public void verteileLaender()
                     throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Die Länder werden gleichmäßig unter die Spieler aufgeteilt.

Specified by:
verteileLaender in interface SpielMgr
Throws:
java.rmi.RemoteException

verteileMissionen

public void verteileMissionen()
                       throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Die Missionen werden erstellt und auf die Spieler aufgeteilt.

Specified by:
verteileMissionen in interface SpielMgr
Throws:
java.rmi.RemoteException

weltErobern

public void weltErobern()
                 throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Missioenen werden ersetzt durch Welterobermissionen

Specified by:
weltErobern in interface SpielMgr
Throws:
java.rmi.RemoteException

reihenfolge

public java.util.Vector<java.lang.Integer> reihenfolge()
                                                throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Die Startreihenfolge wird ausgewürfelt.

Specified by:
reihenfolge in interface SpielMgr
Returns:
Vektor mit Würfelzahlen
Throws:
java.rmi.RemoteException

weiter

public void weiter()
            throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Setzt entsprechend der Spielphase den Modus weiter.

Phase 0: Hauptmenü
Phase 1: Angriffsmenü
Phase 2: Verschiebenmenü
Phase 3: Länder drucken
Phase 4: Zug beenden
Phase 5: Karten einlösen
Phase 6: Spiel speichern
Phase 7: Spiel laden
Phase 50: Verteidigen
Phase 60: Verstärkung setzen
Phase 70: Einheiten nachrücken
Phase 100: Spiel beenden

Specified by:
weiter in interface SpielMgr
Throws:
java.rmi.RemoteException

setPhase

public void setPhase(int wert)
Description copied from interface: SpielMgr
Setzt die Spielphase auf einen bestimmten Wert

Phase 0: Hauptmenü
Phase 1: Angriffsmenü
Phase 2: Verschiebenmenü
Phase 3: Länder drucken
Phase 4: Zug beenden
Phase 5: Karten einlösen
Phase 6: Spiel speichern
Phase 7: Spiel laden
Phase 50: Verteidigen
Phase 60: Verstärkung setzen
Phase 70: Einheiten nachrücken
Phase 100: Spiel beenden

Specified by:
setPhase in interface SpielMgr
Parameters:
wert - Wert auf den Phase gesetzt werden soll

getPhase

public int getPhase()
Description copied from interface: SpielMgr
Gibt die Spielphase zurück

Phase 0: Hauptmenü
Phase 1: Angriffsmenü
Phase 2: Verschiebenmenü
Phase 3: Länder drucken
Phase 4: Zug beenden
Phase 5: Karten einlösen
Phase 6: Spiel speichern
Phase 7: Spiel laden
Phase 50: Verteidigen
Phase 60: Verstärkung setzen
Phase 70: Einheiten nachrücken
Phase 100: Spiel beenden

Specified by:
getPhase in interface SpielMgr
Returns:
aktuelle Phase

starteAngriff

public void starteAngriff(Land a,
                          Land b,
                          int x)
                   throws LandNichtImBesitzException,
                          NichtBenachbartException,
                          NichtGenugEinheitenException,
                          NichtGenugWuerfelException,
                          java.rmi.RemoteException
Description copied from interface: SpielMgr
Startet einen neuen Angriff von a nach b mit x Angreifern (Spielphase: 1)

Specified by:
starteAngriff in interface SpielMgr
Parameters:
a - angreifendes Land
b - verteidigendes Land
x - Anzahl der Einheiten für den Angriff
Throws:
LandNichtImBesitzException - , wenn a nicht im Besitz des aktiven Spielers
NichtBenachbartException - , wenn a und b nicht benachtbart
NichtGenugEinheitenException - , wenn a nur 1 Einheit auf dem Land hat
NichtGenugWuerfelException
java.rmi.RemoteException

verschiebeEinheiten

public void verschiebeEinheiten(Land a,
                                Land b,
                                int x)
                         throws NichtGenugEinheitenException,
                                LandBeteiligtException,
                                LandNichtImBesitzException,
                                NichtBenachbartException,
                                java.rmi.RemoteException
Description copied from interface: SpielMgr
Verschiebt x Einheiten von Land a nach Land b (Spielphase: 2)

Specified by:
verschiebeEinheiten in interface SpielMgr
Parameters:
a - Ursprungsland
b - Zielland
x - Anzahl der Einheiten
Throws:
NichtGenugEinheitenException - , wenn nicht genug Einheiten im Land a verbleiben
LandBeteiligtException - , wenn eines der Länder bereits am Spielzug beteiligt war
LandNichtImBesitzException - , wenn eines der Länder nicht im Besitz des aktiven Spielers
NichtBenachbartException - , wenn a und b nicht benachbart sind
java.rmi.RemoteException

beendeZug

public void beendeZug()
               throws java.rmi.RemoteException
Description copied from interface: SpielMgr

Setzt nächsten Spieler in der Reihe aktiv.
Fügt Karte hinzu falls im Zug Länder erobert wurden.
(Spielphase: 4)

Specified by:
beendeZug in interface SpielMgr
Throws:
java.rmi.RemoteException

kartenEinloesen

public void kartenEinloesen(int[] kartensatz)
                     throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Löst einen Kartensatz ein (Spielphase: 5)

Specified by:
kartenEinloesen in interface SpielMgr
Parameters:
kartensatz - einzulösender Kartensatz
Throws:
java.rmi.RemoteException

speichern

public java.lang.String speichern()
Description copied from interface: SpielMgr
Speichert den Spielstand (Spielphase: 6)

Specified by:
speichern in interface SpielMgr
Returns:
Fehlermeldung oder Bestätigung

laden

public java.lang.String laden()
Description copied from interface: SpielMgr
Lädt letzten Spielstand (Spielphase: 7)

Specified by:
laden in interface SpielMgr
Returns:
Fehlermeldung oder Bestätigung

verteidige

public void verteidige(int y)
                throws NichtGenugWuerfelException,
                       VerteidigerUebersteigtAngreiferException,
                       NichtGenugEinheitenException,
                       java.rmi.RemoteException
Description copied from interface: SpielMgr
Legt Verteidigung fest und führt aktuellen Kampf durch. (Spielphase: 50)

Specified by:
verteidige in interface SpielMgr
Parameters:
y - Anzahl der Einheiten zur Verteidigung
Throws:
NichtGenugWuerfelException - , wenn mehr als 3 Angreifer oder 2 Verteidiger
VerteidigerUebersteigtAngreiferException - , wenn mehr Verteidiger als Angreifer
NichtGenugEinheitenException - , wenn für die Anzahl der Einheiten im Kampf (sowohl Angreifer als auch Verteidiger) nicht genügend Einheiten vorhanden sind.
java.rmi.RemoteException

getVerstaerkung

public int getVerstaerkung()
                    throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Die zusätlichen Einheiten für aktuellen Spieler werden ermittelt. (Spielphase: 60)

Specified by:
getVerstaerkung in interface SpielMgr
Returns:
Anzahl der zusätzlichen Einheiten
Throws:
java.rmi.RemoteException

pruefKarten

public boolean pruefKarten()
                    throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Prüft ob einlösbare Karten vorhanden sind (Spielphase: 5)

Specified by:
pruefKarten in interface SpielMgr
Returns:
true, wenn min. ein Satz einlösbarer Karten
Throws:
java.rmi.RemoteException

getEinloesbareKarten

public java.util.Vector<int[]> getEinloesbareKarten()
Specified by:
getEinloesbareKarten in interface SpielMgr
Returns:
the einloesbareKarten

isGewonnen

public boolean isGewonnen()
                   throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Prüft ob aktiver Spieler gewonnen hat.

Specified by:
isGewonnen in interface SpielMgr
Returns:
true, wenn aktiver Spieler seine Mission erfüllt hat
Throws:
java.rmi.RemoteException

getVerteidiger

public Land getVerteidiger()
Description copied from interface: SpielMgr
Gibt Verteidigerland zurück

Specified by:
getVerteidiger in interface SpielMgr
Returns:
verteidigendes Land

getAngreifer

public Land getAngreifer()
Description copied from interface: SpielMgr
Gibt Angreiferland zurück

Specified by:
getAngreifer in interface SpielMgr
Returns:
angreifendes Land

getWuerfelAngreifer

public java.util.Vector<java.lang.Integer> getWuerfelAngreifer()
Description copied from interface: SpielMgr
Würfelzahlen des Angreifers

Specified by:
getWuerfelAngreifer in interface SpielMgr
Returns:
Vektor mit Würfelzahlen

getWuerfelVerteidiger

public java.util.Vector<java.lang.Integer> getWuerfelVerteidiger()
Description copied from interface: SpielMgr
Würfelzahlen des Verteidigers

Specified by:
getWuerfelVerteidiger in interface SpielMgr
Returns:
Vektor mit Würfelzahlen

getEinheitenAngriff

public int getEinheitenAngriff()
Description copied from interface: SpielMgr
Gibt Anzahl angreifender Einheiten zuürck

Specified by:
getEinheitenAngriff in interface SpielMgr
Returns:
angreifende Einheiten

getAktiverSpieler

public Spieler getAktiverSpieler()
                          throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Gibt aktiven Spieler zurück

Specified by:
getAktiverSpieler in interface SpielMgr
Returns:
aktiven Spieler
Throws:
java.rmi.RemoteException

getAllSpieler

public java.util.Vector<Spieler> getAllSpieler()
Description copied from interface: SpielMgr
Gibt alle Spieler zurück

Specified by:
getAllSpieler in interface SpielMgr
Returns:
Vektor mit allen Spielern

getAllLaender

public java.util.Vector<Land> getAllLaender()
Description copied from interface: SpielMgr
Gibt komplette Länderliste zurück

Specified by:
getAllLaender in interface SpielMgr
Returns:
Vektor mit allen Ländern

getLaender

public java.util.Vector<Land> getLaender(Spieler spieler)
                                  throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Gibt alle Länder eines Spielers zurück

Specified by:
getLaender in interface SpielMgr
Parameters:
spieler - Spieler
Returns:
Vektor mit Ländern des Spielers
Throws:
java.rmi.RemoteException

getNachbarn

public java.util.Vector<Land> getNachbarn(Land a)
                                   throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Gibt alle Nachbarländer eines Landes zurück

Specified by:
getNachbarn in interface SpielMgr
Parameters:
a - Land dessen Nachbarn gesucht sind
Returns:
Vektor mit allen Nachbarn des Landes
Throws:
java.rmi.RemoteException

getEigeneNachbarn

public java.util.Vector<Land> getEigeneNachbarn(Land a)
                                         throws KeineNachbarnException,
                                                java.rmi.RemoteException
Description copied from interface: SpielMgr
Gibt alle eigenen Nachbarn zurück

Specified by:
getEigeneNachbarn in interface SpielMgr
Parameters:
a - Land dessen eigene Nachbarn gesucht sind
Returns:
Vektor mit allen benachbarten Ländern mit gleichen Besitzer von Land a
Throws:
KeineNachbarnException - , wenn keine eigenen Nachbarn
java.rmi.RemoteException

getFremdeNachbarn

public java.util.Vector<Land> getFremdeNachbarn(Land a)
                                         throws KeineNachbarnException,
                                                java.rmi.RemoteException
Description copied from interface: SpielMgr
Gibt alle fremden Nacharn zurück

Specified by:
getFremdeNachbarn in interface SpielMgr
Parameters:
a - Land dessen fremde Nachbarn gesucht sind
Returns:
Vektor mit allen benachbarten Ländern mit anderen Besitzer als a
Throws:
KeineNachbarnException - , wenn keine fremden Nachbarn vorhanden
java.rmi.RemoteException

isNachbar

public boolean isNachbar(Land a,
                         Land b)
                  throws java.rmi.RemoteException
Specified by:
isNachbar in interface SpielMgr
Throws:
java.rmi.RemoteException

setzeEinheiten

public void setzeEinheiten(Land l,
                           int x)
                    throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Fügt x Einheiten zu Land l hinzu.

Specified by:
setzeEinheiten in interface SpielMgr
Parameters:
l - Land
x - Anzahl Einheiten
Throws:
java.rmi.RemoteException

setAnzSpieler

public void setAnzSpieler(int anzSpieler)
Specified by:
setAnzSpieler in interface SpielMgr
Parameters:
anzSpieler - the anzSpieler to set

getAnzSpieler

public int getAnzSpieler()
Specified by:
getAnzSpieler in interface SpielMgr
Returns:
the anzSpieler

setSpielstart

public void setSpielstart(boolean spielstart)
Specified by:
setSpielstart in interface SpielMgr
Parameters:
spielstart - the spielstart to set

isSpielstart

public boolean isSpielstart()
Specified by:
isSpielstart in interface SpielMgr
Returns:
the spielstart

addClient

public void addClient(java.lang.String servicename)
               throws java.net.MalformedURLException,
                      java.rmi.RemoteException,
                      java.rmi.NotBoundException
Description copied from interface: SpielMgr
Fügt einen Client als Observer hinzu

Specified by:
addClient in interface SpielMgr
Throws:
java.net.MalformedURLException
java.rmi.NotBoundException
java.rmi.RemoteException

notifyClients

public void notifyClients(java.lang.Object arg)
                   throws java.rmi.RemoteException
Description copied from interface: SpielMgr
Benachrichtigt alle Clients

Specified by:
notifyClients in interface SpielMgr
Throws:
java.rmi.RemoteException