【发布时间】:2018-07-31 19:31:59
【问题描述】:
所以我有一个元胞自动机,我可以在其中将像素放置在图像上,并且它们每次“滴答”都会向下移动一个像素。现在的问题是因为for循环是这样的:
for(int x = 0; x < 100; x++){
for(int y = 0; y < 100; y++){
//Check if nothing below (x,y) pixel and move it down if so
}
}
然后像素被传送到底部,因为它们在 y 循环的每次迭代中都向下移动。我通过使 y 循环从 100 下降到 0 而不是 0 到 100 来解决它,所以它向上迭代但是如果我想让我的像素在某些情况下向上移动它就行不通了。
可能是一个双循环,其中列出了要移动的像素以及第一个像素的移动位置,并在第二个中实际执行此操作,但这似乎性能很重,我确信有更好的解决方案
PS:如果你有更好的问题标题,请告诉我
【问题讨论】:
-
你在哪里使用“tick”?是在这些 for 循环的内部还是外部?
-
对不起,我无法理解您的问题,但您的标题绝对不是最佳的。我的意思是循环不可能一次评估所有迭代,因为它实际上是 iterate 的目的。
-
所以基本上你的问题归结为:你想在某些情况下为 y 增加一个 for 循环,而在另一些情况下为 y 减少一个 for 循环?
-
您能详细解释一下您要做什么吗?不清楚,你的代码肯定没有做你想做的,所以很难进行反向工程。
标签: c# cellular-automata