我正在构建一个允许玩家控制 10 个电路之间的“功率流”的游戏。
10 个电路中的每一个都单独调整,总和必须始终等于 100%。
例如,一个完美平衡的情况是所有 10 个电路都为 10% (10x10=100)
编辑2:如果我在这里尝试做的不是“平衡”,请发表评论,我会研究它们。
现在玩家还可以锁定电路,使功率等级不能被其他电路改变,但仍然可以直接改变。
编辑 3:在这些情况下,有时可能无法达到要求的数量(例如:示例 3 和 6),最接近的可能结果将是结果
编辑:看到我的帖子收到反对票,我将包括我已经尝试过的内容
- 变化的总和除以请求更改的电路加上请求更改的电路和取消的电路不变 - 这种方法的问题是负面和积极的变化同时可能会平衡并导致没有变化发生的“死锁”情况
- 根据需要通过电路添加和采取循环电路 - 这种方法的问题是它很少正确平衡
- 首先应用减法和加法,然后将所有电路平衡回范围内(因此总数变为 100) - 问题是电源将在不应该出现的地方结束,应该为 0 的电路以少量功率结束
为了简化我的问题,我们可以只使用 5 个电路。
我需要帮助来计算计算以下内容的数学。经过 20 次左右的尝试后,我认为我过于复杂了,因为我一直以 200 行脚本结束,还是这实际上非常复杂?
示例 1:加法示例
20 20 20 20 20 Start values
+10 +10 0 0 0 Change
30 30 3.3 3.3 3.3 After first iteration
50 50 0 0 0 After x iterations (eg key held down)
示例 2:减法示例
20 20 20 20 20 Start values
-10 -10 0 0 0 Change
10 10 26.6 26.6 26.6 After first iteration
0 0 33.3 33.3 33.3 After x iterations (eg key held down)
示例 3:锁定 + 加法(L 被锁定)
L
2.5 90 2.5 2.5 2.5 Start values
0 0 +50 0 0 Change
0 90 10 0 0 After first iteration
0 90 10 0 0 After x iterations (eg key held down)
示例 4:锁定 + 减法(L 被锁定)
L
2.5 90 2.5 2.5 2.5 Start values
0 -10 0 0 0 Change
5 80 5 5 5 After first iteration
25 0 25 25 25 After x iterations (eg key held down)
示例 5:多重锁定 + 减法(L 被锁定)
L L
2.5 90 2.5 2.5 2.5 Start values
0 -10 0 0 0 Change
5.8 80 2.5 5.8 5.8 After first iteration
32.5 0 2.5 32.5 32.5 After x iterations (eg key held down)
示例 6:从不平衡开始的平衡变化(这个数学可能有点偏离)
2.5 90 2.5 2.5 2.5 Start values
+10 +10 +10 0 0 Change
16.7 66.6 16.7 0 0 After first iteration
33.3 33.3 33.3 0 0 After x iterations (eg key held down)