Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider f2d464a3 rédigé par Julien VACHER's avatar Julien VACHER
Parcourir les fichiers

Julien : rajout explication des classes NavyFleet,Coord,Ship et JPanelCoords

parent d49c49d9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -10,7 +10,6 @@ import java.util.regex.*;
public class Coord implements ICoord {
// TODO
private String coordonnee ;
......@@ -22,8 +21,7 @@ public class Coord implements ICoord {
* @throws BadCoordException si la chaine de caractère ne permet pas de définir une coordonnée alphanumérique
*/
public Coord(String xy) throws BadCoordException {
// TODO
//Jamal : On créé le pattern qui contient en début une lettre comprise entre A et J et en fin soit un chiffre entre 1 et 9, soit 10.
//On créé le pattern qui contient en début une lettre comprise entre A et J et en fin soit un chiffre entre 1 et 9, soit 10.
Pattern the_pattern = Pattern.compile("^[A-J]([1-9]|10)$");
Matcher the_matcher = the_pattern.matcher(xy);
......@@ -35,25 +33,24 @@ public class Coord implements ICoord {
@Override
public char getAlphaX() {
// TODO
return coordonnee.charAt(0);
}
@Override
public int getX() {
// TODO
int valeur = coordonnee.charAt(0);
//A en valeur ASCII = 65 et chartAT renvoie la valeur du caractère en ASCII ainsi on enlève 64 pour avoir A =1 , B=2 ....
return valeur-64;
}
@Override
public int getY() {
// TODO
//Jamal : On prend les deux derniers caractères en int de la chaine si on a 3 valeur
if(coordonnee.length()==3){
return Integer.parseInt(coordonnee.substring(1,3));
}
//Même principe que getX() mais cette fois-ci avec les nombres et 1 = 49 en ASCII donc on enlève 48
return coordonnee.charAt(1)-48;
}
......
......@@ -2,6 +2,7 @@ package info1.ships;
import javax.swing.*;
/*Redéfinissions de la classe JPanel, cette classe permet ainsi de crée des JPanel qui contiennent des cordonnées*/
public class JPanelCoords extends JPanel {
private int x;
private int y;
......
......@@ -17,15 +17,19 @@ public class NavyFleet implements INavyFleet {
*
* Construit une nouvelle flotte
*/
/* Crée une nouvelle flotte (une ArrayListe de bateau )*/
public NavyFleet() {
navyliste = new ArrayList<IShip>();
}
/*Renvoie la taille restante disponible de la flotte ( de base une flotte à une taille de 20)*/
@Override
public int remainingSize() {
return tailleflotte;
}
/*Renvoie vraie si la flotte est complète (permet de définir le moment ou on ne peut plus ajouter de bateau)*/
@Override
public boolean isComplete() {
if(remainingSize() == 0){
......@@ -35,14 +39,12 @@ public class NavyFleet implements INavyFleet {
}
public void setTailleflotte(int tailleflotte) {
this.tailleflotte = tailleflotte;
}
public int getTailleflotte() {
return tailleflotte;
}
/* Renvoie un entier différent en fonction de l'ajout du bateau dans la flotte:
-Renvoie 0 si l'ajout dans la flotte cest déroulé avec succès
-Renvoie -2 si si la flotte est complète et qu'on ne peut plus ajouter de bateau
-Renvoie -1 si la flotte contient déja le bateau qu'on essaye d'ajouter
-Renvoie -3 si les cordonnées du bateau qu'on veut rajouter sont déja pris par un bateau de la flotte*/
@Override
public int add(IShip IShip) {
if (navyliste.isEmpty()){
......@@ -70,12 +72,15 @@ public class NavyFleet implements INavyFleet {
}
/*Renvoie la flotte actuelle triée par ordre naturel*/
@Override
public List<IShip> getShips() {
navyliste.sort(null);
return navyliste;
}
/*renvoie seulement les bateaux de la flotte qui font partie de la catégorie mise en paramètre*/
@Override
public Set<IShip> getShips(ShipCategory shipCategory) {
Set<IShip> tmp = new TreeSet<IShip>();
......@@ -86,12 +91,14 @@ public class NavyFleet implements INavyFleet {
}
return tmp;
}
public List<IShip> getListe() {
return navyliste;
}
/*Renvoie la flotte actuelle non triée*/
public List<IShip> getListe() {
return navyliste;
}
/*Renvoie vraie si les bateaux contenus dans la flotte sont dans une configuration belge du jeu*/
@Override
public boolean isBelgianConfiguration() {
if(this.getShips(ShipCategory.BATTLESHIP).size() == 1 && this.getShips(ShipCategory.CRUISER).size() == 2 && this.getShips(ShipCategory.DESTROYER).size() == 3 && this.getShips(ShipCategory.SUBMARINE).size() == 4){
......@@ -100,6 +107,8 @@ public class NavyFleet implements INavyFleet {
return false;
}
/*Renvoie vraie si les bateaux contenus dans la flotte sont dans une configuration française du jeu*/
@Override
public boolean isFrenchConfiguration() {
if(this.getShips(ShipCategory.AIRCRAFT_CARRIER ).size() == 1 && this.getShips(ShipCategory.BATTLESHIP).size() == 1 && this.getShips(ShipCategory.CRUISER).size() == 2 && this.getShips(ShipCategory.DESTROYER).size() == 2 && this.getShips(ShipCategory.SUBMARINE).size() == 1){
......@@ -108,6 +117,15 @@ public class NavyFleet implements INavyFleet {
return false;
}
public void setTailleflotte(int tailleflotte) {
this.tailleflotte = tailleflotte;
}
public int getTailleflotte() {
return tailleflotte;
}
@Override
public String toString() {
return "NavyFleet{" +
......
......@@ -15,7 +15,6 @@ import static java.lang.Math.abs;
public abstract class Ship implements IShip {
// TODO
String name;
String ayFront;
String ayBack;
......@@ -64,14 +63,15 @@ public abstract class Ship implements IShip {
}
//Jocelyn : donne la liste de toutes les coordonnées composant le bateau, de la coordonnée de proue, jusqu'à celle de poupe
@Override
public List<ICoord> getCoords() {
// TODO
List<ICoord> list = new ArrayList<>();
ICoord front = getFront();
ICoord back = getBack();
//On vérifie que Les cordonnées du bateau sont sur la même colonne
if (front.getAlphaX() == back.getAlphaX()) {
//On vérifie que que le numéro du premier cordonnées est bien infèrieur a celui du dernier (bateau crée de haut en bas)
if (front.getY() < back.getY()) {
for (int i = 0; i < getSize(); i++) {
try {
......@@ -84,6 +84,7 @@ public abstract class Ship implements IShip {
}
} else {
//Si numéro du premier cordonnées est supèrieur a celui du dernier ( bateau crée de bas en haut)
for (int i = 0; i < getSize(); i++) {
try {
String test = front.getAlphaX() + String.valueOf(front.getY() - i);
......@@ -95,8 +96,9 @@ public abstract class Ship implements IShip {
}
}
//Bateau crée sur une ligne
} else {
//vérifie que le bateau est crée de gauche à droite
if (front.getX() < back.getX()) {
String[] tab = new String[]{"A","B","C","D","E","F","G","H","I","J"};
for (int i = 0; i < getSize(); i++) {
......@@ -110,7 +112,7 @@ public abstract class Ship implements IShip {
}
}
//vérifie que le bateau est crée de droite à gauche
if (front.getX() > back.getX()) {
String[] tab = new String[]{"A","B","C","D","E","F","G","H","I","J"};
for (int i = 0; i < getSize(); i++) {
......@@ -121,18 +123,15 @@ public abstract class Ship implements IShip {
} catch (BadCoordException e) {
e.printStackTrace();
}
}
}
}
//renvoie la liste de cordonnées du bateau
return list;
}
@Override
public ICoord getFront() {
//TODO
try {
return new Coord(ayFront);
} catch (BadCoordException e) {
......@@ -143,7 +142,6 @@ public abstract class Ship implements IShip {
@Override
public ICoord getBack() {
// TODO
try {
return new Coord(ayBack);
} catch (BadCoordException e) {
......@@ -154,11 +152,10 @@ public abstract class Ship implements IShip {
@Override
public String getName() {
// TODO
return name;
}
//Jocelyn : Je retourne la taille
//Je retourne la taille du type du bateau
@Override
public int getSize() {
// TODO
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter