de.tud.dvs1.mmpgp2p
Class Ruleset

java.lang.Object
  extended by de.tud.dvs1.mmpgp2p.Ruleset
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
RulesetImplementation

public abstract class Ruleset
extends java.lang.Object
implements java.io.Serializable

Für die Abarbeitung eines MmpgP2PCommand und zur Manipulation der GameWorld wird hiermit vom Endanwender eine "Spielregel"-Klasse implementiert.

See Also:
Serialized Form

Field Summary
protected  java.util.Random rand
           
protected  long randSeed
           
protected  long tickCount
           
protected  long tickTime
           
static long TICKTIME
           
 
Constructor Summary
protected Ruleset()
           
 
Method Summary
abstract  GameObject[] applyCommand(GameWorld world, MmpgP2PCommand command)
          Ein Kommando auf die Welt anwenden.
abstract  GameObject[] doTick(GameWorld w, GameObject o)
          Dies ist die vom Endanwender auszufüllende Methode, die regemässig ausgeführt wird.
 long getTickTime()
           
protected  GameObject[] moveTo(GameWorld w, int id, int tox, int toy, int toz)
           
protected  GameObject[] moveTo(GameWorld w, java.lang.Object[] a)
           
 double random()
          Math.random() darf keinesfalls verwendet werden.
 void setTickTime(long time)
           
abstract  GameObject[] targetReached(GameWorld w, GameObject o)
          Diese Funktion wird aufgerufen, falls ein Objekt am Ziel ankommt.
 GameObject[] tick(GameWorld w)
          Diese Methode wird in bestimmten Zeitabständen ausgeführt und führt Berechnungen durch, die nicht aus direkten Befehlen erfolgen.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TICKTIME

public static final long TICKTIME
See Also:
Constant Field Values

tickTime

protected long tickTime

tickCount

protected long tickCount

randSeed

protected long randSeed

rand

protected java.util.Random rand
Constructor Detail

Ruleset

protected Ruleset()
Method Detail

applyCommand

public abstract GameObject[] applyCommand(GameWorld world,
                                          MmpgP2PCommand command)
                                   throws java.lang.Exception
Ein Kommando auf die Welt anwenden. Nach dem Ausführen des Kommandos ist die Welt geändert.

Parameters:
world - Die Welt, auf deren Objekte der Befehl angewandt wird.
command - Das Kommando, welches ausgeführt werden soll.
Returns:
Ein Array der Objekte, die durch diesen Spielzug verändert wurden. NULL wird zurückgeliefert, wenn kein Objekt geändert wurde.
Throws:
java.lang.Exception

doTick

public abstract GameObject[] doTick(GameWorld w,
                                    GameObject o)
                             throws MmpgP2PException
Dies ist die vom Endanwender auszufüllende Methode, die regemässig ausgeführt wird. Sie wird von der internen Tick-Methode aufgerufen, nachdem. ACHTUNG: Bewegungen müssen nicht ausgeführt werden, diese führt das System bereits aus.

Returns:
Die geänderten Objekte NULL wird zurückgeliefert, wenn es nicht geändert wurde.
Throws:
MmpgP2PException

targetReached

public abstract GameObject[] targetReached(GameWorld w,
                                           GameObject o)
                                    throws MmpgP2PException
Diese Funktion wird aufgerufen, falls ein Objekt am Ziel ankommt.

Returns:
Die geänderten Objekte NULL wird zurückgeliefert, wenn es nicht geändert wurde.
Throws:
MmpgP2PException

random

public double random()
Math.random() darf keinesfalls verwendet werden. Daher wird eine eigene Semi-Random-Funktion gestellt, die im Netzwerk bei gleicher Anzahl von Aufrufen auch gleiche Ergebnisse liefern wird. Die zurückgegebene Zahl ist größergleich 0.0 und kleiner 1.0


tick

public GameObject[] tick(GameWorld w)
                  throws MmpgP2PException
Diese Methode wird in bestimmten Zeitabständen ausgeführt und führt Berechnungen durch, die nicht aus direkten Befehlen erfolgen. Hier werden z.B. Bewegungen durchgeführt oder "Wetter" berechnet. Der Fantasie des Endanwenders sind dabei keine Grenzen gesetzt ;-).

Throws:
MmpgP2PException

moveTo

protected GameObject[] moveTo(GameWorld w,
                              java.lang.Object[] a)
                       throws MmpgP2PException
Throws:
MmpgP2PException

moveTo

protected GameObject[] moveTo(GameWorld w,
                              int id,
                              int tox,
                              int toy,
                              int toz)
                       throws MmpgP2PException
Throws:
MmpgP2PException

getTickTime

public long getTickTime()

setTickTime

public void setTickTime(long time)