(Java)如何创建一个系统,其中有int树、木头和现金,还有树/s、木头/s和现金/s



这可能是一个非常愚蠢的问题,但我已经被这个问题困扰了好几天

所以你有一个int树,int木头和现金。树木将被转换成木材,木材将被转换为现金。

你还有一个int树每秒,int木材每秒和现金每秒。

每秒的每一棵树都将添加到树中。每秒钟的木材将被添加到木材中,并从树木中减去。(你需要树来制造木材)。每秒钟的现金将被添加到从木材中减去的现金中。(木材会变成现金)。

每一个.每秒的值都有自己的值。还有树木,木材现金有一个最大值,不能低于0。

那么,如何建立一个每秒都能完成这一切的系统呢。

我知道谁应该做一个每秒钟运行一次的运行方法。

所以你必须这样做:

Trees += treespersecond
Trees -= woodpersecond 
Wood += woodpersecond
Wood -= cashpersecond 
Cash += cashpersecond 

但现在,这些值可以高于其最大值,也可以低于零。如何解决这个问题:如何仍然保持值之间的限制

您尝试使用if-statement了吗?

if (Trees < MAX_TREES) {
Trees += treespersecond;
}
if (Wood < MAX_WOOD && Trees > 0) {
Trees -= woodpersecond;
Wood += woodpersecond;
}
if (Cash < MAX_CASH && Wood > 0) {
Wood -= cashpersecond;
Cash += cashpersecond;
}

要分别处理下溢和溢出,可以将您的值与Integer.MIN_value和Integer.MAX_value.进行比较

我认为在你的情况下,你不应该为树、现金等注册0以下的资源。

Java通过赋予变量最大值来自动处理溢出:

int counter = 999999999999999;
if (counter > Integer.MAX_VALUE) {
counter = Integer.MAX_VALUE;
}

如果您确信达到了极限,可以使用BigInteger

对于资源的最大值,模式是相同的:一个简单的if语句。

int trees = 0;
int treesPerSecond = 10;
int maxTrees = 100;
trees += treesPerSecond;
if (trees > maxTrees) {
trees = maxTrees;
}
else if (trees < 0) {
trees = 0;
}

最新更新