@startuml jeu abstract class Objet { - taille : int - consomable : Condition - transmissible : Condition } class Connaissance { - transmissible : Condition } class Lieu { - exploré : bool - déposable : Condition } class Jeu{} class Territoire{} class Chemin { - ouvert : Condition - visible : Condition - obligatoire : Condition } class Explorateur{} class Personne { - obligatoire : Condition } class Depart{} class Fin{} interface Cachable { - caché : Condition } class Interraction { - disponible : Condition } class Choix{} class Action { - proposable : Condition - finInterraction : Condition } class Condition{} class ConditionOU{} class ConditionET{} class Test{} class TestObjet { - nombre : int - supérieurEgale : bool } class TestConnaissance{} ' Links Condition "1" -down- "0..*" ConditionOU ConditionOU "1" -down- "1..*" ConditionET ConditionET "1" -down- "1..*" Test Test <|-down- TestConnaissance Test <|-down- TestObjet TestConnaissance "0..1" -up- "1" Connaissance TestObjet "0..1" -up- "1" Objet Cachable <|-down- Connaissance Cachable <|-down- Objet Cachable <|-down- Personne Depart -up-|> Lieu Fin -up-|> Lieu Jeu "1" -- "1" Explorateur Jeu "1" -- "1" Territoire Territoire "1" -- "1..*" Lieu Territoire "1" -- "0..*" Chemin Territoire "1" -- "1" Depart Territoire "1" -- "1" Fin Lieu "1" -- "0..*" Chemin Lieu "1" -- "0..*" Chemin Lieu "1" -- "0..*" Connaissance Lieu "0..1" -- "0..*" Objet Lieu "1" -- "0..*" Personne Chemin "0..1" -left- "0..*" Connaissance : transmettre Chemin "0..1" -- "0..*" Objet : transmettre Chemin "0..1" -- "0..*" Objet : consommer Explorateur "0..1" -- "0..*" Connaissance Explorateur "0..1" -- "0..*" Objet Explorateur "0..1" -- "1" Lieu Personne "1" -- "1.." Interraction Interraction "0..1" -- "0..*" Objet Interraction "0..1" -- "0..*" Connaissance Interraction "1" -- "1" Choix Choix "1" -- "1..*" Action @enduml