projet-bataille-navale/projet.use
2024-11-25 15:49:55 +01:00

117 lines
No EOL
1.5 KiB
Text

model projet_bataille_navale
enum TypeCase {
Vide,
Bateau,
Touche,
Rate
}
enum TypeBateau {
Torpilleur,
Contre_Torpilleur,
Croiseur,
Porte_Avions
}
enum TypeCoup {
Rate,
Touche,
Touche_Coule
}
enum EtatBateau {
Operationnel,
Coule
}
class Jeu
operations
init(nom1: String,nom2: String)
debut()
end
class Joueur
attributes
Nom: String
operations
tirer(case: String): TypeCoup
tirerRobot(): TypeCoup
end
class Flotte
operations
ajouterBateau(bateau: Bateau)
end
class Coup
attributes
type: TypeCoup
end
class Plateau
operations
afficherPlateau(CacherBateaux: Boolean)
end
class Case
attributes
x: Integer
y: Integer
type: TypeCase
operations
changerEtat(nouveauEtat: TypeCase)
getEtat(): TypeCase
end
class Bateau
attributes
type: TypeBateau
longueur: Integer
Etat: EtatBateau
end
association Utilise between
Joueur[1] role joueur
Plateau[1] role plateau
end
composition Joue1 between
Joueur[1] role joueur1
Jeu[1] role jeu2
end
composition Joue2 between
Joueur[1] role joueur2
Jeu[1] role jeu1
end
association Tire between
Joueur[*] role joueur
Coup[1] role coups
end
association Appartient between
Joueur[1] role joueur
Flotte[1] role flotte
end
composition Appartient2 between
Flotte[1] role flotte
Bateau[*] role bateaux
end
composition Compose between
Case[100] role cases
Plateau[1] role plateau
end
association Etat between
Case[1] role case
Coup[1] role coup
end
association Repartit between
Case[0..1] role cases
Bateau[2..5] role bateau
end