update
This commit is contained in:
101
DEV.2.1/test/Direction.java
Normal file
101
DEV.2.1/test/Direction.java
Normal file
@@ -0,0 +1,101 @@
|
||||
/**
|
||||
* La classe <code>Direction</code> est utilisée pour signifier une orientation possible
|
||||
* parmi les quatre points cardinaux.
|
||||
*
|
||||
* @version 1.1
|
||||
* @author Luc Hernandez
|
||||
*/
|
||||
public class Direction {
|
||||
|
||||
/**
|
||||
* Constante pointant vers le nord (c'est à dire vers le haut de l'écran).
|
||||
*/
|
||||
public static final Direction NORD = new Direction(+0, -1);
|
||||
|
||||
/**
|
||||
* Constante pointant vers le sud (c'est à dire vers le bas de l'écran).
|
||||
*/
|
||||
public static final Direction SUD = new Direction(+0, +1);
|
||||
|
||||
/**
|
||||
* Constante pointant vers l'est (c'est à dire vers la droite de l'écran).
|
||||
*/
|
||||
public static final Direction EST = new Direction(+1, +0);
|
||||
|
||||
/**
|
||||
* Constante pointant vers l'ouest (c'est à dire vers la gauche de l'écran).
|
||||
*/
|
||||
public static final Direction OUEST = new Direction(-1, +0);
|
||||
|
||||
/**
|
||||
* Composante horizontale de la direction (-1, 0 ou 1).
|
||||
*/
|
||||
private int decalageX;
|
||||
|
||||
/**
|
||||
* Composante verticale de la direction (-1, 0 ou 1).
|
||||
*/
|
||||
private int decalageY;
|
||||
|
||||
/**
|
||||
* Constructeur uniquement destiné à la création des constantes publiques.
|
||||
*
|
||||
* @param x l'abcisse (-1, 0 ou 1)
|
||||
* @param y l'ordonnée (-1, 0 ou 1)
|
||||
*/
|
||||
private Direction(int x, int y) {
|
||||
this.decalageX = x;
|
||||
this.decalageY = y;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoie la composante horizontale de la direction.
|
||||
*
|
||||
* @return la composante horizontale de la direction (-1, 0 ou 1)
|
||||
*/
|
||||
public int getDecalageX() {
|
||||
return this.decalageX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoie la composante verticale de la direction.
|
||||
*
|
||||
* @return la composante verticale de la direction (-1, 0 ou 1)
|
||||
*/
|
||||
public int getDecalageY() {
|
||||
return this.decalageY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoie la direction produite par un quart de tour dans le sens horaire.
|
||||
*
|
||||
* @return la nouvelle direction
|
||||
*/
|
||||
public Direction quartDeTour() {
|
||||
if (this == Direction.NORD)
|
||||
return Direction.EST;
|
||||
else if (this == Direction.EST)
|
||||
return Direction.SUD;
|
||||
else if (this == Direction.SUD)
|
||||
return Direction.OUEST;
|
||||
else // if (this == Direction.OUEST)
|
||||
return Direction.NORD;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoie la direction produite par un quart de tour dans le sens anti-horaire.
|
||||
*
|
||||
* @return la nouvelle direction
|
||||
*/
|
||||
public Direction quartDeTourAnti() {
|
||||
if (this == Direction.NORD)
|
||||
return Direction.OUEST;
|
||||
else if (this == Direction.EST)
|
||||
return Direction.NORD;
|
||||
else if (this == Direction.SUD)
|
||||
return Direction.EST;
|
||||
else // if (this == Direction.OUEST)
|
||||
return Direction.SUD;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user