de.torfu.kabayellow.common
Class Board

java.lang.Object
  |
  +--de.torfu.kabayellow.common.Board

public class Board
extends java.lang.Object

Repräsentiert das Spielfeld, bestehend aus 64 Feldern.


Method Summary
 boolean areSameCastle(java.awt.Point firstPoint, java.awt.Point secondPoint)
          Methode zum überprüfen ob zwei Punkte auf dem Spielbrett zur selben Burg gehören
 boolean areSameCastle(java.awt.Point startPoint, java.awt.Point targetPoint, java.awt.Point forbiddenPoint)
          Diese Methode überprüft ob zwei Burgsteine zur selben Burg gehören und ob es einen Weg zwischen den Steinen gibt.
 boolean canPutStoneFromThere(java.awt.Point point)
          Methode zum überprüfen ob ein Stone von dem Point entfernt werden darf
 boolean canPutStoneThere(java.awt.Point endPoint)
           
 boolean CastleWiderThanHigh(java.awt.Point point)
          Bestimmt ob die Burg auf dem übergebenen Punkt eine größere Grundfläche als Höhe hat.
 void decCastleCount()
          Methode zum verringern der Anzahl der Burgen auf dem Spielfeld
 Cell[] getAdjacentCastleCellsStraightSorted(java.awt.Point position)
          Gibt einen Array mit Cell-Objekten sortiert zurück.
 Cell[] getAdjacentCellsDiag(java.awt.Point position)
          Gibt einen Array mit 4 Cell-Objekten zurück, Vorsicht, bei am Rand gelegenen Cells, können Objekte null sein, die "aus dem Feld herausschauen".
 Cell[] getAdjacentCellsStraight(java.awt.Point position)
          Gibt einen Array mit 4 Cell-Objekten zurück, Vorsicht, bei am Rand gelegenen Cells, können Objekte null sein, die "aus dem Feld herausschauen".
 Cell[] getAdjacentCellsStraightSorted(java.awt.Point position)
          Gibt einen Array mit 4 Cell-Objekten sortiert zurück.
 java.util.Vector getAllKnights()
          Gibt einen Vector zurück, der alle Knights auf dem Board enthält, inklusive dem König.
 int getCastleHeight(java.awt.Point point)
          Diese Methode berechnet für einen Point die Höhe der Burg, deren Teil er ist.
 int getCastleWidth(java.awt.Point point)
          Diese Methode berechnet für einen Point die Grundfläche der Burg, deren Teil er ist.
 Cell getCell(int x, int y)
          Gibt einen Verweis auf das Feld mit den Koordinaten (x, y) zurück.
 Cell getCell(java.awt.Point p)
          Gibt einen Verweis auf das Feld mit den Koordinaten in p zurück.
 boolean[] getFieldsOfThisCastle(java.awt.Point point)
           
 boolean[] getFieldsOfThisCastle(java.awt.Point point, boolean[] beenThere)
          Diese lokale Methode traversiert eine Burg und berechnet deren Höhe und Grundfläche und gibt einen boolean[64] zurück, welcher besagt, ob dieses Feld zur Burg gehört.
 Knight getKing()
           
 Castle getKingCastle()
          Gibt das Castle zurück, auf dem der König steht.
 Cell getKingCell()
          Gibt die Zelle zurück auf der der König steht.
 java.awt.Point getKingPos()
          Gibt die Position des Königs zurück.
 java.util.Vector getNeighbourFieldsOfCastleInVector(java.awt.Point point)
           
 boolean[] getNeighbourFieldsOfThisCastle(java.awt.Point point)
           
 boolean[] getNeighbourFieldsOfThisCastle(java.awt.Point point, boolean[] beenThere)
          Diese lokale Methode traversiert eine Burg und berechnet deren Höhe und Grundfläche und gibt einen boolean[64] zurück, welcher besagt, ob dieses Feld direkt neben der Burg ist.
 int getNumberOfCastles()
          Gibt die Anzahl der sich auf dem Spielfeld befindlichen Burgen zurück
 boolean[] getWherePutStones()
          Methode überprüft ob man einen Stein auf die entsprechende Cell stellen kann Überprüft wird ob die Cell frei ist, ob die Burg nicht zu hoch wird und ob nicht zwei Burgen zusammengebaut wird
 boolean[] getWherePutStonesAndNewCastle()
           
 boolean haveNoNeighCells(java.awt.Point point)
          Methode zum überprüfen ob ein Point keine Nachbarsteine hat
 boolean haveTwoNeighStones(java.awt.Point point)
          Methode zum überprüfen ob ein Point mindestens zwei Nachbarsteine hat
 void incCastleCount()
          Methode zum erhöhen der Anzahl von Burgen auf dem Spielfeld
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getNumberOfCastles

public int getNumberOfCastles()
Gibt die Anzahl der sich auf dem Spielfeld befindlichen Burgen zurück


incCastleCount

public void incCastleCount()
Methode zum erhöhen der Anzahl von Burgen auf dem Spielfeld


decCastleCount

public void decCastleCount()
Methode zum verringern der Anzahl der Burgen auf dem Spielfeld


getAdjacentCellsStraight

public Cell[] getAdjacentCellsStraight(java.awt.Point position)
Gibt einen Array mit 4 Cell-Objekten zurück, Vorsicht, bei am Rand gelegenen Cells, können Objekte null sein, die "aus dem Feld herausschauen". Der Array beginnt mit dem Feld oberhalb vom Startpunkt position


getAdjacentCellsStraightSorted

public Cell[] getAdjacentCellsStraightSorted(java.awt.Point position)
Gibt einen Array mit 4 Cell-Objekten sortiert zurück. D.h. wenn die erste Cell=null dann gibt es Cells mehr dahinter Der Array beginnt mit dem Feld oberhalb vom Startpunkt position


getAdjacentCastleCellsStraightSorted

public Cell[] getAdjacentCastleCellsStraightSorted(java.awt.Point position)
Gibt einen Array mit Cell-Objekten sortiert zurück. D.h. wenn die erste Cell=null dann gibt es Cells mehr dahinter Der Array beginnt mit dem Feld oberhalb vom Startpunkt position


getAdjacentCellsDiag

public Cell[] getAdjacentCellsDiag(java.awt.Point position)
Gibt einen Array mit 4 Cell-Objekten zurück, Vorsicht, bei am Rand gelegenen Cells, können Objekte null sein, die "aus dem Feld herausschauen". Der Array beginnt mit dem Feld links oben vom Startpunkt position


getCell

public Cell getCell(java.awt.Point p)
Gibt einen Verweis auf das Feld mit den Koordinaten in p zurück.

Parameters:
p - Die Koordinaten des gewünschten Feldes
Returns:
Ein Verweis auf das Feld.

getCell

public Cell getCell(int x,
                    int y)
Gibt einen Verweis auf das Feld mit den Koordinaten (x, y) zurück.

Parameters:
x - die Spalte des gewünschten Feldes, beginnend bei 0
y - die Zeile des gewünschten Feldes, beginnend bei 0
Returns:
Ein Verweis auf das Feld.

getCastleHeight

public int getCastleHeight(java.awt.Point point)
Diese Methode berechnet für einen Point die Höhe der Burg, deren Teil er ist. Steht an dieser Koordinate keine Burg, wird Null zurückgegeben. noch ungetestet


getCastleWidth

public int getCastleWidth(java.awt.Point point)
Diese Methode berechnet für einen Point die Grundfläche der Burg, deren Teil er ist. Steht an dieser Koordinate keine Burg, wird Null zurückgegeben. noch ungetestet


CastleWiderThanHigh

public boolean CastleWiderThanHigh(java.awt.Point point)
Bestimmt ob die Burg auf dem übergebenen Punkt eine größere Grundfläche als Höhe hat. Wenn keine Burg da ist wird false zurückgegeben noch ungetestet


getFieldsOfThisCastle

public boolean[] getFieldsOfThisCastle(java.awt.Point point,
                                       boolean[] beenThere)
Diese lokale Methode traversiert eine Burg und berechnet deren Höhe und Grundfläche und gibt einen boolean[64] zurück, welcher besagt, ob dieses Feld zur Burg gehört. Diese Methode geht davon aus, das man ein Burgfeld übergeben hat. noch ungetestet.


getFieldsOfThisCastle

public boolean[] getFieldsOfThisCastle(java.awt.Point point)

getNeighbourFieldsOfThisCastle

public boolean[] getNeighbourFieldsOfThisCastle(java.awt.Point point,
                                                boolean[] beenThere)
Diese lokale Methode traversiert eine Burg und berechnet deren Höhe und Grundfläche und gibt einen boolean[64] zurück, welcher besagt, ob dieses Feld direkt neben der Burg ist. Diese Methode geht davon aus, das man ein Burgfeld übergeben hat. noch ungetestet


getNeighbourFieldsOfCastleInVector

public java.util.Vector getNeighbourFieldsOfCastleInVector(java.awt.Point point)

getNeighbourFieldsOfThisCastle

public boolean[] getNeighbourFieldsOfThisCastle(java.awt.Point point)

areSameCastle

public boolean areSameCastle(java.awt.Point firstPoint,
                             java.awt.Point secondPoint)
Methode zum überprüfen ob zwei Punkte auf dem Spielbrett zur selben Burg gehören


areSameCastle

public boolean areSameCastle(java.awt.Point startPoint,
                             java.awt.Point targetPoint,
                             java.awt.Point forbiddenPoint)
Diese Methode überprüft ob zwei Burgsteine zur selben Burg gehören und ob es einen Weg zwischen den Steinen gibt. (Klingt sinnlos) Durch das übergebene BooleanArray kann man einzelne Cells als Weg ausschliessen


getWherePutStones

public boolean[] getWherePutStones()
Methode überprüft ob man einen Stein auf die entsprechende Cell stellen kann Überprüft wird ob die Cell frei ist, ob die Burg nicht zu hoch wird und ob nicht zwei Burgen zusammengebaut wird


getWherePutStonesAndNewCastle

public boolean[] getWherePutStonesAndNewCastle()

canPutStoneThere

public boolean canPutStoneThere(java.awt.Point endPoint)

canPutStoneFromThere

public boolean canPutStoneFromThere(java.awt.Point point)
Methode zum überprüfen ob ein Stone von dem Point entfernt werden darf


haveTwoNeighStones

public boolean haveTwoNeighStones(java.awt.Point point)
Methode zum überprüfen ob ein Point mindestens zwei Nachbarsteine hat


haveNoNeighCells

public boolean haveNoNeighCells(java.awt.Point point)
Methode zum überprüfen ob ein Point keine Nachbarsteine hat


getKingPos

public java.awt.Point getKingPos()
Gibt die Position des Königs zurück. Wenn der König noch nicht auf dem Brett steht (nullte Phase), dann wird null zurückgegeben.


getKingCell

public Cell getKingCell()
Gibt die Zelle zurück auf der der König steht. Wenn der König noch nicht auf dem Brett steht (nullte Phase), dann wird null zurückgegeben.


getKingCastle

public Castle getKingCastle()
Gibt das Castle zurück, auf dem der König steht. Wenn der König noch nicht auf dem Brett steht (nullte Phase), dann wird null zurückgegeben.


getAllKnights

public java.util.Vector getAllKnights()
Gibt einen Vector zurück, der alle Knights auf dem Board enthält, inklusive dem König.


getKing

public Knight getKing()