@startuml Adventure

class Juego
{
    Jugar()
    -tiempoJugado
}
class Jugador
{
    Controlar()
    -puntaje
    -intento
}
class Personaje 
{
    Agarrar()
    Soltar()
    Moverse()
    
}
class Objeto{
    -color
    -tamaño
}
class Llave
{
    Acceder()
   
}
class Trofeo
{
    TerminarJuego()
}
class Lanza 
{
    Atacar()
    -daño
}

class Sala
{
    -paredes
    -tamaño
    -puertas
    -suelo
    -items
}
class Puerta 
{
    DejarPasar()
    -tamaño 
    -textura
}
class Laberinto
{
    -cantidadSalas
}
class Pared
{
    -textura
    -tamaño
}

class Dragon
{
    Atacar()
    Perseguir()
    -daño
   
}

class Entidad{
    -tamaño
    -textura
    -vida
    -velocidad

}

Jugador "1" o-- "1" Personaje
Juego *-- "1" Jugador
Juego o-- "1" Personaje

Llave -|> Objeto
Trofeo-|> Objeto
Lanza -|> Objeto

Personaje "1" o-- "1" Objeto

Juego "1" *-- "1"Laberinto
Laberinto "1" *-- "*"Sala
Jugador "1" o--"1"Sala
Sala "1"*-- "*" Puerta
Sala "1" *-- "*" Pared 

Personaje -|> Entidad
Dragon -|> Entidad

@enduml