def assign_role_to_player(rolekey, player)
        role_klass    = roles[rolekey]
        role_instance = role_klass.new(:player => player, :context => self)
        instance_variable_set(:"@#{rolekey}", role_instance)
      end
def assign_role_to_player(rolekey, player)
        role_klass    = roles[rolekey]
        role_instance = role_klass.new(:player => player, :context => self)
        instance_variable_set(:"@#{rolekey}", role_instance)
      end
Associates a role to an intended player:
   - A new role instance is created from the associated rolekey class and the player to get that role.
   - The new role instance has access to the context it is playing.
   - The new role instance has access to the rest of players in its context through instance methods named after their role keys.
   - The context instance has access to this new role instance through an instance method named after the role key.