传递给PriorityQueue

时间:2019-03-27 15:20:15

标签: java

我有一个PriorityQueue<Monster> pq,其中存储着怪物的生命值(生命值)和对其进行的治疗(恢复)。 heal在创建Monster对象时存储healing_tracker的值。

在驱动程序类中,healing_tracker跟踪整个游戏对我的怪兽完成的全部治疗。例如,假设healing_tracker的值为50,当我创建一个HP为30的新怪物时,Monster bob = new Monster (30, healing_tracker)的bob.heal将为50。我应该再使我的Monster受到50的伤害吗,bob .heal不会更改,但是healing_tracker更新为100。

我想对我的PriorityQueue中的Monsters进行排序的方式是按净HP的升序排列。对于怪物查理(Charlie),净资产为:charlie.health - charlie.heal + healing_tracker。因此,我创建了一个Comparator来这样做,但我意识到我无法将healing_tracker作为参数传递给Comparator。

是否可以使用在驱动程序类中建立的healing_tracker来更新Comparator?

0 个答案:

没有答案