
import java.awt.*;

/** Cette classe permet de gerer les coordonnées de la cellule*/
public class CoordCellule extends ExpAr {
    Coord c;

    //constructeur de CoordCellule
    public CoordCellule(Coord r) {
        c = r;
    }

    int valeurCellule(Coord base, Cellule env[][]) throws ErrorException {
        Point p = null;
        switch (c.avoirType()) {   // la Coordonnée est passée Point
            case Coord.Coord_Absolue:
                p = c.avoirAbsoluePoint();
                break;
            case Coord.Coord_Relative:
                p = c.avoirRelativePoint(base);
                break;
        }
        if (
                (p.y < 0) || (p.y >= env.length)
                ||
                (p.x < 0) || (p.x >= env[0].length)
        )
        // si la coordonnée référence une cellule en dehors du tableau !
            throw new ExceptionCoordInvalide();
        return env[p.y][p.x].avoirValeur();
    }

    Coord[] listeCoord() {
        Coord[] res = new Coord[1];
        res[0] = new Coord(c);
        return res;
    }

}

