繁体   English   中英

如何获得多个可运行对象共有的变量的最小值?

[英]How to get the minimum value of a variable common to several runnable objects?

我正在尝试使用线程和MVC来模拟各种类型的战斗序列。 细节:

  • 每个生物都有一个主动得分来控制谁先走。
  • 每个生物必须陈述其预定目标。
  • 生物被加载到'战斗'类的堆栈中; 得分最低的生物首先进入堆叠。
  • 一旦每个生物选择了一个目标,堆叠就会清空,生物会根据其主动顺序行动,最高优先。

赋值约束要求我将生物作为单独的线程处理。 问题是:

  • 我不知道'Combat'类有一种方法可以意识到它必须处理堆栈上的动作,因为没有更多的生物进入它。
  • 我认为'战斗'必须有一种方法来了解所有正在运行的线程中最低的主动得分,但我不知道如何管理它。

如果我不能更清楚地表达这一点,我道歉。 这是非常令人沮丧的。

如果不知道这个作业的确切要求,很难给出一个好的答案,但这里有一些想法。

Combat类需要知道它何时具有所有移动,以便它可以处理它们。 每个生物都需要每回合进行一次战斗动作,或者如果发出信号不打算进行战斗动作或其他类似动作。 没有这些信息,您不知道何时处理移动。

处于主动顺序的处理移动是有意义的,但是你需要它们按顺序推入堆栈。 添加所有移动然后排序或使用优先级队列似乎是一个更好的解决方案。 如果要求战斗类只接受某个顺序的动作,那么是的,它需要知道最低分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM