@startuml strategy

abstract class PlayStrategy {
    void playTurn(ArenaController arenaController);
}
note right 
Strategy
end note

class ArenaController{
    + void playEnemyTurn();
}
note top
Context
end note

class NormalPlayStrategy{
    + void playTurn(ArenaController arenaController);
}
note bottom
Concrete startegy
end note

class AggressivePlayStrategy{
    + void playTurn(ArenaController arenaController);
}
class CarefulPlayStrategy{
    + void playTurn(ArenaController arenaController);
}

PlayStrategy <-right-o ArenaController

skinparam groupInheritance 3

NormalPlayStrategy ..|> PlayStrategy
AggressivePlayStrategy..|> PlayStrategy
CarefulPlayStrategy ..|> PlayStrategy
@enduml