Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 1536196e rédigé par E194212A's avatar E194212A
Parcourir les fichiers

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	out/production/battleship-student-project-2021/info1/ships/NavyFleet.class
parents b3797d55 421667d1
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Fichier ajouté
......@@ -4,10 +4,8 @@ import info1.ships.INavyFleet;
import info1.ships.IShip;
import info1.ships.ShipCategory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.*;
/**
* Classe définissant une flotte de navires
......@@ -44,24 +42,38 @@ public class NavyFleet implements INavyFleet {
@Override
public int add(IShip ship) {
if(fleet.contains(ship))
return -2;
else if(remainingSize() - ship.getSize() < 0)
return -1;
else if(remainingSize() - ship.getSize() < 0)
return -2;
else if (isOnPlace(ship))
return -3;
else {
fleet.add(ship);
return 0;
}
}
private boolean isOnPlace(IShip ship){
for (IShip shipp : fleet){
for (int i = 0; i < shipp.getCoords().size(); i++) {
if (ship.getCoords().contains(shipp.getCoords().get(i)))
return true;
}
}
return false;
}
@Override
public List<IShip> getShips() {
//TODO trie
return fleet;
List<IShip> tmp = fleet;
Collections.sort(tmp);
return tmp;
}
@Override
public Set<IShip> getShips(ShipCategory shipCategory) {
Set tmp = Collections.emptySet();
Set<IShip> tmp = new LinkedHashSet<>();
for (IShip ship : fleet)
if(ship.getCategory()==shipCategory)
tmp.add(ship);
......@@ -71,13 +83,24 @@ public class NavyFleet implements INavyFleet {
@Override
public boolean isBelgianConfiguration() {
// TODO verifier: 1 cuirassee(5), 1 croiseur(4), 2 contre torpille(3), 1 torpilleur(2)
// TO DO verifier 1 cuirassé, 2 croiseurs, 3 torpilleurs, 4 sous-marins
if(getShips(ShipCategory.BATTLESHIP).size() == 1
&& getShips(ShipCategory.CRUISER).size() == 2
&& getShips(ShipCategory.DESTROYER).size() == 3
&& getShips(ShipCategory.SUBMARINE).size() == 4)
return true;
return false;
}
@Override
public boolean isFrenchConfiguration() {
// TODO verifier 1 cuirassee(5), 2 croiseur(4), 3 torpilleur(2), 4 sous marin(1)
// TO DO verifier: 1 porte-avion, 1 cuirassé, 2 croiseurs, 2 torpilleurs, 1 sous-marin
if(getShips(ShipCategory.AIRCRAFT_CARRIER).size() == 1
&& getShips(ShipCategory.BATTLESHIP).size() == 1
&& getShips(ShipCategory.CRUISER).size() == 2
&& getShips(ShipCategory.DESTROYER).size() == 2
&& getShips(ShipCategory.SUBMARINE).size() == 1)
return true;
return false;
}
......
......@@ -38,12 +38,52 @@ public abstract class Ship implements IShip {
@Override
public List<ICoord> getCoords() {
char[] alphabet = {'A','B','C','D','E','F','G','H','I','J'};
ArrayList<ICoord> list = new ArrayList<>();
list.add(cord1);
if (cord1.getY() == cord2.getY()) { //meme ligne
if (cord1.getX() < cord2.getX()) { //gauche a droite
for (int i = 1 + cord1.getX(); i < cord2.getX(); i++) {
char[] tempo = {alphabet[i - 1], cord1.getYString().charAt(0)};
list.add(createCoord(tempo));
}
} else if (cord1.getX() > cord2.getX()) {
for (int i = cord1.getX() - 1; i > cord2.getX(); i--) {
char[] tempo = {alphabet[i - 1], cord1.getYString().charAt(0)};
list.add(createCoord(tempo));
}
}
}
else if (cord1.getX() == cord2.getX()){
if(cord1.getY() < cord2.getY()) {
for (int i = cord1.getY() + 1; i < cord2.getY(); i++) {
char[] tempo = {cord1.getAlphaX(), String.valueOf(i).charAt(0)};
list.add(createCoord(tempo));
}
}
else if (cord1.getY() > cord2.getY()) {
for (int i = cord1.getY() - 1; i > cord2.getY(); i--) {
char[] tempo = {cord1.getAlphaX(), String.valueOf(i).charAt(0)};
list.add(createCoord(tempo));
}
}
}
list.add(cord2);
return list;
}
public Coord createCoord(char[] tab){
String stringTempo = new String(tab);
Coord co = null;
try {
co = new Coord(stringTempo);
} catch (BadCoordException e) {
e.printStackTrace();
}
return co;
}
@Override
public ICoord getFront() {
return cord1;
......
......@@ -314,7 +314,7 @@ public class NavyFleetTest {
*/
// TODO tests isBelgianConfiguration()
// TO DO tests isBelgianConfiguration()
@Test void testEstBelge_OK() throws Exception {
assertEquals(0,maFlotte.add(monCuirasse));
......@@ -396,7 +396,7 @@ public class NavyFleetTest {
*/
// TODO tests isFrenchConfiguration()
// TO DO tests isFrenchConfiguration()
@Test
public void testEstFrancaise_OK() {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter