Class PiezaAbstracta

java.lang.Object
  extended by PiezaAbstracta
All Implemented Interfaces:
Pieza
Direct Known Subclasses:
PiezaI, PiezaJ, PiezaL, PiezaO, PiezaS, PiezaT, PiezaZ

public abstract class PiezaAbstracta
extends Object
implements Pieza

Implementacion parcial de lo que deben hacer las piezas del tetris.

Basado en la obra de Per Cederberg, per@percederberg.net

Version:
30.12.2010
Author:
Jose A. Manas

Constructor Summary
PiezaAbstracta(Color color)
          Constructor.
 
Method Summary
static Pieza crea()
          Crea una pieza aleatoriamente.
 void desvincular()
          Retira la pieza del tablero.
 boolean enTablero()
          Chequea si la pieza esta en un tablero.
 boolean esCompletamenteVisible()
          Verifica si la pieza es perfectamente visible en un tablero.
 int getDeltaX(int cuadrado, int orientacion)
          Si la pieza esta en una cierta columna X, se devuelve lo que hay que sumar a X para saber la posicion del cuadradito que se pasa como argumento.
 int getDeltaY(int cuadrado, int orientacion)
          Si la pieza esta en una cierta columna X, se devuelve lo que hay que sumar a X para saber la posicion del cuadradito que se pasa como argumento.
 int getOrientacion()
          Posicion de la pieza, en cuanto a giro.
 void giroAleatorio()
          Rota la pieza, a izquierda o derecha, aleatoriamente.
 void giroDerecha()
          Rota la pieza a la derecha (sentido de las agujas del reloj), si es posible.
 void giroIzquierda()
          Rota la pieza a la izquierda (sentido de las agujas del reloj), si es posible.
 boolean haAterrizado()
          Verifica si la pieza ha aterrizado o si esta volando.
 void mueveAbajo()
          Mueve la pieza hacia abajo, si es posible.
 void mueveAlFondo()
          Mueve la pieza hacia abajo, hasta el fondo, si es posible.
 void mueveDerecha()
          Mueve la pieza a la derecha, si es posible.
 void mueveIzquierda()
          Mueve la pieza a la izquierda, si es posible.
 void setOrientacion(int orientacion)
          Marca la orientacion de la pieza.
 boolean vincular(Tablero tablero, boolean center)
          Vincula la pieza esta a un tablero.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface Pieza
getDeltaX, getDeltaY, size
 

Constructor Detail

PiezaAbstracta

public PiezaAbstracta(Color color)
Constructor. Para que lo usen las clases derivadas de esta.

Parameters:
color - de la pieza.
Method Detail

crea

public static Pieza crea()
Crea una pieza aleatoriamente.

Returns:
una pieza al azar.

desvincular

public void desvincular()
Retira la pieza del tablero.

Specified by:
desvincular in interface Pieza

enTablero

public boolean enTablero()
Chequea si la pieza esta en un tablero.

Specified by:
enTablero in interface Pieza
Returns:
true si esta en un tablero.

esCompletamenteVisible

public boolean esCompletamenteVisible()
Verifica si la pieza es perfectamente visible en un tablero. Si la pieza no esta en un tablero, FALSE.

Specified by:
esCompletamenteVisible in interface Pieza
Returns:
true si la pieza esta visible.

getDeltaX

public int getDeltaX(int cuadrado,
                     int orientacion)
Si la pieza esta en una cierta columna X, se devuelve lo que hay que sumar a X para saber la posicion del cuadradito que se pasa como argumento. Se usa la orientacion que se pasa como parametro.

Specified by:
getDeltaX in interface Pieza
Parameters:
cuadrado - uno de los cuadraditos que componen la pieza.
orientacion - orientacion deseada, independiente de la orientacion actual de la pieza.
Returns:
posicion relativa del cuadradito respecto de la figura.

getDeltaY

public int getDeltaY(int cuadrado,
                     int orientacion)
Si la pieza esta en una cierta columna X, se devuelve lo que hay que sumar a X para saber la posicion del cuadradito que se pasa como argumento. Se usa la orientacion que se pasa como parametro.

Specified by:
getDeltaY in interface Pieza
Parameters:
cuadrado - uno de los cuadraditos que componen la pieza.
orientacion - orientacion deseada, independiente de la orientacion actual de la pieza.
Returns:
posicion relativa del cuadradito respecto de la figura.

getOrientacion

public int getOrientacion()
Posicion de la pieza, en cuanto a giro.

Specified by:
getOrientacion in interface Pieza
Returns:
0, 1, 2 o 3 segun este orientada poer defecto o en incrementos de pi/2.

giroAleatorio

public void giroAleatorio()
Rota la pieza, a izquierda o derecha, aleatoriamente.

Specified by:
giroAleatorio in interface Pieza

giroDerecha

public void giroDerecha()
Rota la pieza a la derecha (sentido de las agujas del reloj), si es posible.

Specified by:
giroDerecha in interface Pieza

giroIzquierda

public void giroIzquierda()
Rota la pieza a la izquierda (sentido de las agujas del reloj), si es posible.

Specified by:
giroIzquierda in interface Pieza

haAterrizado

public boolean haAterrizado()
Verifica si la pieza ha aterrizado o si esta volando.

Specified by:
haAterrizado in interface Pieza
Returns:
true si ha aterrizado.

mueveAbajo

public void mueveAbajo()
Mueve la pieza hacia abajo, si es posible.

Specified by:
mueveAbajo in interface Pieza

mueveAlFondo

public void mueveAlFondo()
Mueve la pieza hacia abajo, hasta el fondo, si es posible.

Specified by:
mueveAlFondo in interface Pieza

mueveDerecha

public void mueveDerecha()
Mueve la pieza a la derecha, si es posible.

Specified by:
mueveDerecha in interface Pieza

mueveIzquierda

public void mueveIzquierda()
Mueve la pieza a la izquierda, si es posible.

Specified by:
mueveIzquierda in interface Pieza

setOrientacion

public void setOrientacion(int orientacion)
Marca la orientacion de la pieza.

0 - inicial
1 - pi/2 a derechas
2 - pi
3 - pi/2 a izquierdas.

Specified by:
setOrientacion in interface Pieza
Parameters:
orientacion - orientacion actual.

vincular

public boolean vincular(Tablero tablero,
                        boolean center)
Vincula la pieza esta a un tablero. O sea, que la pieza hay que pintarla en algun tablero.

Specified by:
vincular in interface Pieza
Parameters:
tablero - tablero al que se vincula.
center - true implica que queremos que la pieza aparezca centrada.
Returns:
true si se pudo colocar en el tablero (sin colisiones).