package spiel;

import java.io.Serializable;

/* Dies war die Original-Fassung:

public enum Richtung implements Serializable {

    N, S, NW, SW, NO, SO
}

Nun mit gleich eingebauten Richtungsvektoren gemäß Sebastian "esscue".
*/

/** Definiert die Richtungen, in denen ein Nachbar eines Feldes
 *  auf dem Spielbrett liegt. Sieht man ein Spielbrett als Matrix
 *  mit Indizes als int an, dann bedeuten die einzelnen Richtungen
 *  folgendes:
 *  
 *    N  = (-1,0)
 *    S  = (1,0)
 *    NW = (-1,-1)
 *    SW = (0,-1)
 *    NO = (0,1)
 *    SO = (1,1)
 *
 *  Keiner Richtung entsprechen (0,0), (1,-1) und (-1,1).
 *
 *  @version 1.2
 *  @author  ProgPrak-Team (+ siehe unten)
 */
public enum Richtung implements Serializable
{
    N (-1,0),
    S (1,0),
    NW (-1,-1),
    SW (0,-1),
    NO (0,1),
    SO (1,1);

    // für Serialisierung
    private static final long serialVersionUID = 12L;

    private final int DELTA_X;
    private final int DELTA_Y;

    Richtung(int deltaX, int deltaY) {
        this.DELTA_X = deltaX;
        this.DELTA_Y = deltaY;
    }

    /** ergibt die x-Differenz für die Richtung */
    public int getDeltaX() {
        return DELTA_X;
    }
    
    /** ergibt die y-Differenz für die Richtung */
    public int getDeltaY() {
        return DELTA_Y;
    }
} 
