【问题标题】:Walking a list of inheritance走遗产清单
【发布时间】:2020-01-04 06:45:15
【问题描述】:

对于游戏,我们有一个排名列表,例如默认、mod、jrmod、admin 等。每个排名都存储在数据库中,并包含一些信息,就像它继承的内容和权限一样。每个rank也可以继承另一个,比如admin继承srmod,srmod继承mod,jrmod继承default。这允许在不重复数据的情况下堆叠权限。

问题是当前在加载等级时,会设置用户等级,然后该等级的继承和加载,然后再继承。但是,这意味着权限继承只有 2 层。对于我们上面的示例,admin 继承了 srmod,后者继承了 mod。然后它就停止了。

我不知道可以使用哪种算法来遍历继承线并加载这些权限。这段代码是Java的,每个rank可以有多个继承,例如jrmod继承default和lord rank。

【问题讨论】:

    标签: java algorithm tree rank


    【解决方案1】:

    如果 Rank 有继承,你只需要检查一个 while 循环,只要它有一个获得该等级的权限,然后再次检查并...

    List<String> permissions = new 
    Rank rank = getRank(player);
    while (rank.hasInheritance()) {
      rank = rank.getInheritance();
      permissions.addAll(rank.getPermissions());
    }
    

    【讨论】:

      猜你喜欢
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2017-10-16
      • 2021-04-07
      • 2016-07-19
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多