确定最佳项目统计组合的最佳实践

时间:2018-03-06 19:44:56

标签: javascript sorting

我正在开发一种优化游戏设备的工具,我不知道如何解决这个问题。它的游戏中包含头盔,盔甲和靴子等物品。每个项目都有攻击,防御和健康等统计数据。有关如何对大量项目进行排序以找到最佳组合的任何建议吗?

我目前的想法是为每个项目类别制作单独的数组:

helmets = [{id:0, health:100, attack:150}, {} ...];
armor = [{id:23, health:200, attack:70}, {} ...];

然后按特定的数据对每个阵列进行排序(找到最多的健康头盔,大多数防御装甲)。这显然是一种可怕的排序方式,为不同类别的伟大物品留出空间不受影响。我还计划实现“焦点过滤器”,因此可以为用户提供专注于攻击或防御等属性的项目。

总体而言,我不确定使用什么样的高级策略以及如何执行此操作,并且对所有建议持开放态度。

1 个答案:

答案 0 :(得分:1)

我认为最佳实践是一个肮脏的术语,因为它是基于意见的。

我在想一个包装你的物品的单身人士可能是一个好主意。它将允许您创建一个可用的API,使您的代码库更易于维护和更好看。

我喜欢将这些类型的项目中的数据保持规范化。这意味着一切都是关系型的,它使得以常见方式访问不同位数据变得非常容易。我创建了一个REPL for you to play around with

messages.foreachRDD{ rdd =>
  val f = Future {
  //        sleep(100)
    val newRDD = rdd.map{message => 
                           val req_message = message.value()  
                           (message.value())
                        }

    println("Request messages: " + newRDD.count())         
    var resultrows = newRDD.collect()//.collectAsList() 
    processMessage(resultrows, mlFeatures: MLFeatures, conf)          
    println("Inside scala future")
    1          
  }
  f.onComplete {
    case Success(messages) => println("yay!")
    case Failure(exception) => println("On no!")
  }  
}

遵循说明