serpiente
Class Serpiente

java.lang.Object
  extended by serpiente.Serpiente

public class Serpiente
extends java.lang.Object

Esta clase representa la Serpiente. Una Serpiente está formada por un número variable de celdas adyacentes, que se guardan en un Vector. El número de celdas puede aumentar si se desea. La Serpiente también necesita de una dirección de movimiento (direccion) y un puntero (cabezaPtr) a la posición en el Vector de celdas dónde está la cabeza.


Field Summary
(package private) static int ABAJO
           
(package private) static int ARRIBA
           
private  int cabezaPtr
           
private  java.util.Vector celdas
           
(package private) static int CHOCA_BLOQUE
           
(package private) static int CHOCA_SERPIENTE
           
(package private) static int COME_RATON
           
(package private) static int DERECHA
           
private  int direccion
           
(package private) static int DIRECCION_MASCARA
           
(package private) static int HABIA_NADA
           
(package private) static int IZQUIERDA
           
(package private) static int NINGUNA
           
private  Rejilla rejilla
           
 
Constructor Summary
Serpiente(Rejilla rej)
          Crea una nueva Serpiente con 5 celdas, colocada en el centro de la Rejilla y con dirección IZQUIERDA.
 
Method Summary
 void initSerpiente()
          Hace que la Serpiente vuelva a tener 5 celdas, esté colocada en el centro de la Rejilla y tenga dirección IZQUIERDA.
 int mueveSerpiente(Ratones ratones)
          Mueve la Serpiente un paso en su direccion de movimiento.
 void setDireccion(int dir)
          Establece una nueva dirección (IZQUIERDA, DERECHA, ARRIBA o ABAJO) para la Serpiente.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DIRECCION_MASCARA

static final int DIRECCION_MASCARA
See Also:
Constant Field Values

NINGUNA

static final int NINGUNA
See Also:
Constant Field Values

IZQUIERDA

static final int IZQUIERDA
See Also:
Constant Field Values

DERECHA

static final int DERECHA
See Also:
Constant Field Values

ARRIBA

static final int ARRIBA
See Also:
Constant Field Values

ABAJO

static final int ABAJO
See Also:
Constant Field Values

HABIA_NADA

static final int HABIA_NADA
See Also:
Constant Field Values

CHOCA_BLOQUE

static final int CHOCA_BLOQUE
See Also:
Constant Field Values

CHOCA_SERPIENTE

static final int CHOCA_SERPIENTE
See Also:
Constant Field Values

COME_RATON

static final int COME_RATON
See Also:
Constant Field Values

celdas

private java.util.Vector celdas

rejilla

private Rejilla rejilla

cabezaPtr

private int cabezaPtr

direccion

private int direccion
Constructor Detail

Serpiente

Serpiente(Rejilla rej)
Crea una nueva Serpiente con 5 celdas, colocada en el centro de la Rejilla y con dirección IZQUIERDA. Además hace que el dato miembro rejilla apunte al objeto rej pasado como parámetro

Parameters:
rej - La Rejilla del juego
Method Detail

setDireccion

public void setDireccion(int dir)
Establece una nueva dirección (IZQUIERDA, DERECHA, ARRIBA o ABAJO) para la Serpiente.

Parameters:
dir - La nueva dirección de movimiento

initSerpiente

public void initSerpiente()
Hace que la Serpiente vuelva a tener 5 celdas, esté colocada en el centro de la Rejilla y tenga dirección IZQUIERDA.


mueveSerpiente

public int mueveSerpiente(Ratones ratones)
Mueve la Serpiente un paso en su direccion de movimiento. Además comprueba si la cabeza de la Serpiente choca contra un muro o ella misma (devolviendo entonces CHOCA_BLOQUE o CHOCA_SERPIENTE) o contra un ratón (devolviendo CHOCA_RATON). Cuando choca contra un Raton, aumenta su longitud en una celda, y recoloca el Raton en una nueva posición aleatoria.

Parameters:
ratones - el array de Ratones, necesario cuando serpiente como un raton, para recolocarlo en otra posicion
Returns:
HABIA_NADA si no choca con nada. CHOCA_BLOQUE si choca contra un muro, CHOCA_SERPIENTE si choca contra sí misma, y CHOCA_RATON si choca contra un Raton.