Commit d54b155d authored by Jérémie's avatar Jérémie
Browse files

Ships et class bateau commenté

parent d1a139aa
...@@ -8,16 +8,16 @@ import info1.ships.ShipCategory; ...@@ -8,16 +8,16 @@ import info1.ships.ShipCategory;
* Classe définissant une navire de catégorie "Porte-Avion" (taille 5) * Classe définissant une navire de catégorie "Porte-Avion" (taille 5)
*/ */
public class AircraftCarrier extends Ship { public class AircraftCarrier extends Ship { //Class porte-avion, extension de Ship
public AircraftCarrier(String name, String xyFront, String xyBack) public AircraftCarrier(String name, String xyFront, String xyBack) //Constructeur avec le nom, les coordonnées de l'avant et l'arrière du bateau
throws BadCoordException, CoordsBadShipException { throws BadCoordException, CoordsBadShipException { //qui peut renvoyer les exceptions
super(name, xyFront, xyBack); super(name, xyFront, xyBack); //renvoie ses argument a sa classe mère
} }
@Override @Override
public ShipCategory getCategory() { public ShipCategory getCategory() {
return ShipCategory.AIRCRAFT_CARRIER; return ShipCategory.AIRCRAFT_CARRIER;
} } //getter de sa categorie
} }
...@@ -9,16 +9,16 @@ import info1.ships.ShipCategory; ...@@ -9,16 +9,16 @@ import info1.ships.ShipCategory;
* @author lanoix-a * @author lanoix-a
*/ */
public class Battleship extends Ship { public class Battleship extends Ship { //Class Battleship, extension de Ship
public Battleship(String name, String xyFront, String xyBack) public Battleship(String name, String xyFront, String xyBack)
throws BadCoordException, CoordsBadShipException { throws BadCoordException, CoordsBadShipException { //qui peut renvoyer les exceptions
super(name, xyFront, xyBack); super(name, xyFront, xyBack); //renvoie ses argument a sa classe mère
} }
@Override @Override
public ShipCategory getCategory() { public ShipCategory getCategory() {
return ShipCategory.BATTLESHIP; return ShipCategory.BATTLESHIP;
} } //getter de sa categorie
} }
...@@ -10,16 +10,16 @@ import info1.ships.ShipCategory; ...@@ -10,16 +10,16 @@ import info1.ships.ShipCategory;
* @author lanoix-a * @author lanoix-a
*/ */
public class Cruiser extends Ship { public class Cruiser extends Ship { //Class Cruiser, extension de Ship
public Cruiser(String name, String xyFront, String xyBack) public Cruiser(String name, String xyFront, String xyBack)
throws BadCoordException, CoordsBadShipException { throws BadCoordException, CoordsBadShipException { //qui peut renvoyer les exceptions
super(name, xyFront, xyBack); super(name, xyFront, xyBack); //renvoie ses argument a sa classe mère
} }
@Override @Override
public ShipCategory getCategory() { public ShipCategory getCategory() {
return ShipCategory.CRUISER; return ShipCategory.CRUISER;
} } //getter de sa categorie
} }
...@@ -10,16 +10,16 @@ import info1.ships.ShipCategory; ...@@ -10,16 +10,16 @@ import info1.ships.ShipCategory;
* @author lanoix-a * @author lanoix-a
*/ */
public class Destroyer extends Ship { public class Destroyer extends Ship { //Class Destroyer, extension de Ship
public Destroyer(String name, String xyFront, String xyBack) public Destroyer(String name, String xyFront, String xyBack)
throws BadCoordException, CoordsBadShipException { throws BadCoordException, CoordsBadShipException { //qui peut renvoyer les exceptions
super(name, xyFront, xyBack); super(name, xyFront, xyBack); //renvoie ses argument a sa classe mère
} }
@Override @Override
public ShipCategory getCategory() { public ShipCategory getCategory() {
return ShipCategory.DESTROYER; return ShipCategory.DESTROYER;
} } //getter de sa categorie
} }
...@@ -11,11 +11,11 @@ import java.util.Objects; ...@@ -11,11 +11,11 @@ import java.util.Objects;
*/ */
public abstract class Ship implements IShip { public abstract class Ship implements IShip { //Class shipe implémentant l'interface IShip
private String name; private String name; //Argument : nom
Coord cord1; Coord cord1; //Argument : Coordonnée de l'avant
Coord cord2; Coord cord2; //Argument : Coordonnée de l'arriere
/** /**
...@@ -29,22 +29,22 @@ public abstract class Ship implements IShip { ...@@ -29,22 +29,22 @@ public abstract class Ship implements IShip {
* @throws CoordsBadShipException si les coordonnées données ne permettent pas de définir un bateau correct : * @throws CoordsBadShipException si les coordonnées données ne permettent pas de définir un bateau correct :
* une ligne, une colonne, de la bonne taille, etc. * une ligne, une colonne, de la bonne taille, etc.
*/ */
public Ship(String name, String ayFront, String ayBack) public Ship(String name, String ayFront, String ayBack) //Constructeur avec les argument
throws BadCoordException, CoordsBadShipException { throws BadCoordException, CoordsBadShipException { //qui peut renvoyer les exceptions
this.name=name; this.name=name; //attribue les argument à leur variables d'instances réspectives
this.cord1=new Coord(ayFront); this.cord1=new Coord(ayFront); //convertie les coordonnée de String en Coord
this.cord2=new Coord(ayBack); this.cord2=new Coord(ayBack); //idem
if(getCategory().getSize()!=getSize()){ if(getCategory().getSize()!=getSize()){ //verifie si la taille du bateau correspond bien a son type
throw new CoordsBadShipException(); throw new CoordsBadShipException(); //renvoie une erreur si ce n'est pas le cas
} }
} }
@Override @Override
public List<ICoord> getCoords() { public List<ICoord> getCoords() { //methode renvoyant la liste des coordonnée sur lesquelle sont le bateau
ArrayList<ICoord> list = new ArrayList<>(); ArrayList<ICoord> list = new ArrayList<>(); //création d'une arrayList qui contiendra ces coordonnées
Coord icord1 = cord1; Coord icord1 = cord1; //création de variable contenant ce qu'il y a dans les variable d'instance
Coord icord2 = cord2; Coord icord2 = cord2; //idem
int j = 0; int j = 0;
if(cord1.toString().equals(cord2.toString())){ if(cord1.toString().equals(cord2.toString())){
list.add(cord1); list.add(cord1);
...@@ -72,53 +72,53 @@ public abstract class Ship implements IShip { ...@@ -72,53 +72,53 @@ public abstract class Ship implements IShip {
} }
} }
} }
return list; return list; //return l'arrayList pleine
} }
@Override @Override
public ICoord getFront() { public ICoord getFront() {
return cord1; return cord1;
} } //getter de la coordonnée avant
@Override @Override
public ICoord getBack() { public ICoord getBack() {
return cord2; return cord2;
} } //getter de la coordonnée arrière
@Override @Override
public String getName() { public String getName() {
return this.name; return this.name;
} } //getter du nom du bateau
@Override @Override
public int getSize() { public int getSize() { //Methode pour avoir la taille du bateau
if(cord1.getY()==cord2.getY()){ if(cord1.getY()==cord2.getY()){ //test si le bateau est dans le sens horizontale
if(cord1.getX()>cord2.getX()) if(cord1.getX()>cord2.getX()) //test si le bateau est de droite a gauche
return cord1.getX()-cord2.getX()+1; return cord1.getX()-cord2.getX()+1; //retourne sa taille
return cord2.getX()-cord1.getX()+1; return cord2.getX()-cord1.getX()+1; //retourne sa taille s'il est de gauche a droite
} }
if(cord1.getX()==cord2.getX()){ if(cord1.getX()==cord2.getX()){ //test si le bateau est dans le sens verticale
if(cord1.getY()>cord2.getY()) if(cord1.getY()>cord2.getY()) //test si le bateau est de bas en haut
return cord1.getY()-cord2.getY()+1; return cord1.getY()-cord2.getY()+1; //retourne sa taille
return cord2.getY()-cord1.getY()+1; return cord2.getY()-cord1.getY()+1; //retourne sa taille s'il est de haut en bas
} }
return -1; return -1; //retourne -1 si la methode si aucun des test n'est concluant (bug)
} }
public ShipCategory gettheCategory(){ public ShipCategory gettheCategory(){
return getCategory(); return getCategory();
} } //retourne la catégorie du bateau
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) { //methode redéfinissant le equals
if (this == o) return true; if (this == o) return true; //retourne true s'ils sont égaux
if (o == null || getClass() != o.getClass()) return false; if (o == null || getClass() != o.getClass()) return false; // retourne false si equals n'a pas d'argument ou si les bateaux ne sont pas de la même classe
Ship ship = (Ship) o; Ship ship = (Ship) o;
return Objects.equals(name, ship.name) && Objects.equals(cord1, ship.cord1) && Objects.equals(cord2, ship.cord2); return Objects.equals(name, ship.name) && Objects.equals(cord1, ship.cord1) && Objects.equals(cord2, ship.cord2); //retourne
} }
@Override @Override
public String toString() { public String toString() { //methode toString
return "Ship{" + return "Ship{" +
"name='" + name + '\'' + "name='" + name + '\'' +
", cord1=" + cord1 + ", cord1=" + cord1 +
...@@ -129,5 +129,5 @@ public abstract class Ship implements IShip { ...@@ -129,5 +129,5 @@ public abstract class Ship implements IShip {
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash(name, cord1, cord2); return Objects.hash(name, cord1, cord2);
} } //retourne le hashcode
} }
...@@ -9,16 +9,16 @@ import info1.ships.ShipCategory; ...@@ -9,16 +9,16 @@ import info1.ships.ShipCategory;
* @author lanoix-a * @author lanoix-a
*/ */
public class Submarine extends Ship { public class Submarine extends Ship { //Class sousmarin, extension de Ship
public Submarine(String name, String xy) public Submarine(String name, String xy)
throws BadCoordException, CoordsBadShipException { throws BadCoordException, CoordsBadShipException { //qui peut renvoyer les exceptions
super(name, xy, xy); super(name, xy, xy); //renvoie son argument a sa classe mère
} }
@Override @Override
public ShipCategory getCategory() { public ShipCategory getCategory() {
return ShipCategory.SUBMARINE; return ShipCategory.SUBMARINE;
} } //getter de sa categorie
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment