@startuml Geometry Dash - Diagramme de cas d'utilisation

left to right direction

actor Joueur as Joueur


rectangle "Menu principal" {
  usecase "Configurer les paramètres" as ConfigurerParametres
  usecase "Accéder à la sélection des niveaux" as SelectionNiveau
  usecase "Accéder à l'éditeur de cartes" as EditeurCartes
  usecase "Consulter les statistiques" as ConsulterStats
  usecase "Voir les trophées et récompenses" as VoirTrophees
}

rectangle "Sélection des niveaux" {
  usecase "Parcourir les niveaux disponibles" as ParcourirNiveaux
  usecase "Afficher les détails d'un niveau" as AfficherDetailsNiveau
  usecase "Commencer un niveau" as CommencerNiveau
}

rectangle "Pendant un niveau" {
  usecase "Sauter" as Sauter
  usecase "Mettre le jeu en pause" as MettrePause
}

rectangle "Paramètres" {
  usecase "Régler le volume du jeu" as ReglerVolume
  usecase "Changer la musique de fond" as ChangerMusique
  usecase "Lire les instructions d'aide" as LireAide
}

rectangle "Création de cartes" {
  usecase "Créer une nouvelle carte" as CreerNouvelleCarte
  usecase "Modifier une carte existante" as ModifierCarte
  usecase "Tester une carte" as TesterCarte
  usecase "Partager une carte" as PartagerCarte
  usecase "Télécharger des cartes de la communauté" as TelechargerCartes
}

rectangle "Statistiques" {
  usecase "Afficher les statistiques globales" as AfficherStatsGlobales
  usecase "Afficher les statistiques de session" as AfficherStatsSession
}

rectangle "Trophées et récompenses" {
  usecase "Voir les trophées débloqués" as VoirTropheesDebloques
  usecase "Voir les pièces collectées" as VoirPieces
}

rectangle "Menu Pause" {
  usecase "Continuer" as Continuer
  usecase "Redémarrer la partie" as RedemarrerPartie
  usecase "Retour à la sélection des maps" as RetourSelection
}

Joueur --> ConfigurerParametres : <<extends>>
Joueur --> SelectionNiveau : <<extends>>
Joueur --> EditeurCartes : <<extends>>
Joueur --> ConsulterStats : <<extends>>
Joueur --> VoirTrophees : <<extends>>

SelectionNiveau --> ParcourirNiveaux : <<include>>
ParcourirNiveaux --> AfficherDetailsNiveau : <<extends>>
ParcourirNiveaux --> CommencerNiveau : <<extends>>

CommencerNiveau --> Sauter : <<extends>>
CommencerNiveau --> MettrePause : <<extends>>

ConfigurerParametres --> ReglerVolume : <<extends>>
ConfigurerParametres --> ChangerMusique : <<extends>>
ConfigurerParametres --> LireAide : <<extends>>

EditeurCartes --> CreerNouvelleCarte : <<extends>>
EditeurCartes --> ModifierCarte : <<extends>>
EditeurCartes --> TelechargerCartes : <<extends>>
CreerNouvelleCarte --> TesterCarte : <<extends>>
ModifierCarte --> TesterCarte : <<extends>>
CreerNouvelleCarte --> PartagerCarte : <<extends>>
ModifierCarte --> PartagerCarte : <<extends>>

TesterCarte--> Sauter : <<extends>>
TesterCarte--> MettrePause : <<extends>>

ConsulterStats --> AfficherStatsGlobales : <<extends>>
ConsulterStats --> AfficherStatsSession : <<extends>>

VoirTrophees --> VoirTropheesDebloques : <<extends>>
VoirTrophees --> VoirPieces : <<extends>>

MettrePause --> Continuer : <<extends>>
MettrePause --> RedemarrerPartie : <<extends>>
MettrePause --> RetourSelection : <<extends>>

RedemarrerPartie --> Sauter : <<extends>>
RedemarrerPartie --> MettrePause : <<extends>>

Continuer --> Sauter : <<extends>>
Continuer --> MettrePause : <<extends>>

RetourSelection --> ParcourirNiveaux : <<include>>

@enduml