de.korelstar.tetris
Class Stein

java.lang.Object
  extended byde.korelstar.tetris.Stein

public class Stein
extends java.lang.Object

Repräsentiert einen einzelnen Tetris-Stein.

Author:
Kristof Hamann

Field Summary
private  java.awt.Color farbe
          Die Farbe des Steines.
private static java.awt.Color[] FARBEN
          Enthält die Farben der verschiedenen Steine.
private  java.awt.Point[] felder
          Speichert die relative Position der verschiedenen Felder des Steines.
private  java.awt.Point position
          Speichert die absolute Position des Steines.
private  Spielfeld spielfeld
          Spielfeld, auf welchem sich der Stein befindet.
static int STEIN_RAND
          Wert zum Erstellen eines Steines mit zufälligem Typ.
private static java.awt.Point[][] STEINE
          Enthält die relative Positionen der Felder der verschiedenen Steine
 
Constructor Summary
(package private) Stein(Spielfeld spielfeld)
          Erstellt neuen Stein.
(package private) Stein(Spielfeld spielfeld, int typ)
          Erstellt neuen Stein.
 
Method Summary
 java.awt.Point[] getAllPos()
          Gibt die absolute Position dieses Steines im Spielfeld zurück.
 java.awt.Color getColor()
          Gibt die Farbe des Steines zurück.
 java.awt.Point[] getFelder()
          Gibt die aktuelle Position des Steines zurück.
 java.awt.Point getPos()
          Gibt die aktuelle Position des Steines zurück.
private static java.awt.Point getPos(java.awt.Point feld, java.awt.Point position)
          Gibt die absolute Position im Spielfeld zu einem Feld des Steines zurück.
 void moveDown()
          Bewegt den Stein ein Feld nach unten.
 void moveLeft()
          Bewegt den Stein ein Feld nach links.
 void moveRight()
          Bewegt den Stein ein Feld nach rechts.
private  void tryMove(java.awt.Point[] felder, java.awt.Point position)
          Führt eine Bewegung des Steines aus.
 void turn()
          Dreht den Stein im Uhrzeigersinn.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STEIN_RAND

public static final int STEIN_RAND
Wert zum Erstellen eines Steines mit zufälligem Typ.

See Also:
Constant Field Values

STEINE

private static final java.awt.Point[][] STEINE
Enthält die relative Positionen der Felder der verschiedenen Steine


FARBEN

private static final java.awt.Color[] FARBEN
Enthält die Farben der verschiedenen Steine.


felder

private java.awt.Point[] felder
Speichert die relative Position der verschiedenen Felder des Steines.


position

private java.awt.Point position
Speichert die absolute Position des Steines.


spielfeld

private Spielfeld spielfeld
Spielfeld, auf welchem sich der Stein befindet.


farbe

private java.awt.Color farbe
Die Farbe des Steines.

Constructor Detail

Stein

Stein(Spielfeld spielfeld)
Erstellt neuen Stein. Der Typ wird hierbei zufällig gewählt.

Parameters:
spielfeld - Spielfeld, auf welchem der Stein erscheinen soll

Stein

Stein(Spielfeld spielfeld,
      int typ)
Erstellt neuen Stein.

Der Parameter typ kann hierbei einen der folgenden Werte annehmen:

Parameters:
spielfeld - Spielfeld, auf welchem der Stein erscheinen soll
typ - Eine Konstante, die den Typ des Steines angbit
Method Detail

getColor

public java.awt.Color getColor()
Gibt die Farbe des Steines zurück.

Returns:
Farb-Objekt des Steines

getPos

public java.awt.Point getPos()
Gibt die aktuelle Position des Steines zurück.

Returns:
Position des Steines

getFelder

public java.awt.Point[] getFelder()
Gibt die aktuelle Position des Steines zurück.

Returns:
Position des Steines

moveDown

public void moveDown()
              throws java.lang.IndexOutOfBoundsException
Bewegt den Stein ein Feld nach unten.

Throws:
java.lang.IndexOutOfBoundsException - Wenn am Rand oder an einem anderen Stein angekommen

moveRight

public void moveRight()
Bewegt den Stein ein Feld nach rechts.


moveLeft

public void moveLeft()
Bewegt den Stein ein Feld nach links.


turn

public void turn()
Dreht den Stein im Uhrzeigersinn.


getAllPos

public java.awt.Point[] getAllPos()
Gibt die absolute Position dieses Steines im Spielfeld zurück.

Returns:
Array aus Punkten mit der absoluten Position dieses Steines

getPos

private static java.awt.Point getPos(java.awt.Point feld,
                                     java.awt.Point position)
Gibt die absolute Position im Spielfeld zu einem Feld des Steines zurück.

Parameters:
feld - Relative Position des Feldes
position - Absolute Position des Steines im Spielfeld
Returns:
Punkt mit der absoluten Position dieses Feldes

tryMove

private void tryMove(java.awt.Point[] felder,
                     java.awt.Point position)
              throws java.lang.IndexOutOfBoundsException
Führt eine Bewegung des Steines aus.

Parameters:
felder - Array mit relativen Positionen der Felder des Steines
position - Punkt, der die absolute Position des Steines im Spielfeld angibt
Throws:
java.lang.IndexOutOfBoundsException - wenn der Zug des Steines nicht machbar ist