package com.esir.sr.sweetsnake.game.component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.esir.sr.sweetsnake.constants.GameConstants;
import com.esir.sr.sweetsnake.enumeration.ComponentType;
import com.esir.sr.sweetsnake.enumeration.MoveDirection;
/**
*
* @author Herminaƫl Rougier
* @author Damien Jouanno
*
*/
public class Snake extends AbstractComponent
{
/**********************************************************************************************
* [BLOCK] STATIC FIELDS
**********************************************************************************************/
/** The logger */
private static final Logger log = LoggerFactory.getLogger(Snake.class);
/**********************************************************************************************
* [BLOCK] CONSTRUCTOR
**********************************************************************************************/
/**
*
*/
public Snake() {
super(ComponentType.SNAKE);
}
/**********************************************************************************************
* [BLOCK] PUBLIC METHODS
**********************************************************************************************/
/*
* (non-Javadoc)
*
* @see com.esir.sr.sweetsnake.game.SweetSnakeAbstractElement#move(com.esir.sr.sweetsnake.enumeration .Direction)
*/
@Override
public void move(final MoveDirection direction) {
log.debug("Moving snake with id {} to the {}", id, direction);
x = (x + direction.getValue()[0] + GameConstants.GRID_SIZE) % GameConstants.GRID_SIZE;
y = (y + direction.getValue()[1] + GameConstants.GRID_SIZE) % GameConstants.GRID_SIZE;
}
}