Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
David LELIEVRE
projetS2-15-AL
Commits
112a9a30
Commit
112a9a30
authored
Jun 25, 2021
by
E201139E
Browse files
Commentaires
parent
347a99ef
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/controleur/ButtonCreateFleetControleur.java
View file @
112a9a30
...
...
@@ -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
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment