【发布时间】:2023-03-31 11:54:01
【问题描述】:
我正在参与一个资源游戏模拟项目。我要做的是……
"如果有足够的可用资源,就会满足请求,并且从可用数量中减去请求的数量。如果没有足够的资源,动画会消耗可用的数量并等待更多的资源可用。”
问题是我如何使这成为可能...减少资源,然后在某个地方保留仍然需要的东西,并在有可用资源时减少它(例如贷款)...
例子:
... 需要 100 GOLD.... 但是 ... 50 GOLD 可用...
... 减少 50 黄金... 等到黄金>=50 然后
...减少 50 黄金...
等等……
示例代码...
public void feedArmy(){
if(food>=100){
food=food-100;
System.out.println("*Feed Soldiers (-100 Food)");
System.out.println(toString());
}
else{
System.out.println("*Feed Soldiers (-100 Food)");
System.out.println("-Not Enough Food!"); //get loan instead
}
}
(编辑后) 目前最好的解决方案:
实际上......我想只是减少木材的所需值,然后如果数字变为负数,我将保持负值将其变为正值
数学.abs();
所以如果木头是 30 并且我想要 100... 我做 30-100=-70;然后贷款=-70; ...
然后我 Math.abs(loan);这样loan=70;
然后我做一个if(wood>loan){ wood=wood-loan} //我可能需要睡觉直到木头再次刷新......就是这样......
我仍然不知道生产者/消费者的东西是什么......
【问题讨论】:
-
语句“等到资源可用”意味着你有生产者线程和消费者线程。生产者-消费者同步的详细解释远远超出了 SO 的范围,这是针对特定编程问题的。在网上搜索有关多线程编程的教程,特别是“生产者-消费者”。另外,请阅读FAQ 和How to Ask 以更好地了解如何写出好问题。
-
@JimGarrison 我不同意这超出了 SO 范围,但这种游戏可以在没有多线程的情况下通过简单的游戏循环来实现
-
超出 SO 范围??那是什么?
-
技术上 SO(堆栈溢出)适用于普遍感兴趣的问题和答案,而不仅仅是提问者。 (尽管这个规则经常被忽略,因为这是一个礼貌的、写得很好的问题)。有关详细信息,请参阅常见问题解答
-
这不仅是为了我......我的同学也在寻找这个信息......如果这很重要
标签: java multithreading resources simulation producer-consumer