Commit 112a9a30 authored by E201139E's avatar E201139E
Browse files

Commentaires

parent 347a99ef
......@@ -26,32 +26,44 @@ import vue.*;
public class ButtonCreateFleetControleur implements ActionListener, MouseListener{
private FenLog log;
/**
* Controleur des boutons de création de flotte
* @param log, fenêtre dans laquel se trouve le bouton
*/
public ButtonCreateFleetControleur(FenLog log) {
this.log=log;
}
@Override
public void actionPerformed(ActionEvent e) {
// Trouver le bouton/ las case sur laquel on a cliqué
JButton recup = (JButton) e.getSource();
Coord coords;
try {
coords = new Coord(recup.getName());
// Pour tout les bateaux, sauf les sous-marins et le "réinitialiser" on stock temporairement la case "front" du bateau
if (log.getTmpCoords().isEmpty() && log.getEtapeCreation() != 6 && log.getEtapeCreation() < 14) {
log.getTmpCoords().add(coords);
log.setMessage("Maintenant selectionnez l'arrière du bateau.", 0);
}else {
// Quand on ajoute un sous-marin, "réinitialiser" ou que l'on a l'avant du bateau on va le créer
switch (log.getEtapeCreation()) {
// FRANCE
// Chaque case correspond à l'étape à laquelle on est dans la création de la flotte.
// config FRANCE
case 1:
// On essaye de créer le bateau
try {
IShip n_ship = new Battleship("Cuirassé", log.getTmpCoords().get(0).toString(), coords.toString());
// On vérifie qu'il ne chevauche aucun autre bateau
if (!isTaken(n_ship)) {
// Ajout du bateau à la flotte
log.getFlotte().add(n_ship);
// Coloration des cases de la grille qu'utlise le nouveau bateau
this.Colorize(n_ship);
log.setMessage("Création du cuirassé réussie. <br> Placez votre premier croiseur (Longueur : 3).", 0);
// Passage au bateau/étape suivante
log.increaseEtapeCreation();
}
}
......@@ -357,7 +369,7 @@ public class ButtonCreateFleetControleur implements ActionListener, MouseListene
log.goMenu();
break;
}
// Pour l'étape suivante on réinitialise la liste de coordonnées temporaires
if (!log.getTmpCoords().isEmpty()) {
log.getTmpCoords().remove(0);
}
......@@ -367,6 +379,10 @@ public class ButtonCreateFleetControleur implements ActionListener, MouseListene
}
}
/**
* Colore les case qu'utilise le nouveau bateau
* @param n_ship, le nouveau bateau
*/
public void Colorize(IShip n_ship ) {
for (ICoord c : n_ship.getCoords()) {
if(c.equals(n_ship.getCoords().get(0))){
......@@ -397,6 +413,11 @@ public class ButtonCreateFleetControleur implements ActionListener, MouseListene
}
}
/**
* Vérifie que les toutes cases du bateau sont libres
* @param n_ship, le nouveau bateau
* @return true si une des cases et déjà utilisés, false sinon
*/
public Boolean isTaken(IShip n_ship) {
int t = 0;
Boolean taken = false;
......
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