【问题标题】:How to iterate the same sketch multiple times -(processing)如何多次迭代同一个草图-(处理)
【发布时间】:2020-03-19 04:22:38
【问题描述】:

我在 Processing 3.5.4 中编写了一个程序。其基本结构如下:

int SOMEINITIALSTUFF;
Class[] classArrays = new Class[];

void setup() {
  Sets up the simulation to run;
  size(1200, 700);
}

void draw() {
  background(255, 200, 200);
  Runs Simulation;
  Collects data;
}

这运行良好。我想做的是多次运行这个程序来收集一些统计数据。

我不知道该怎么做。我想基本上将整个代码放入一个循环中,并收集它为每次迭代创建的数据,可能会运行数千次。我已经尝试过了,但它破坏了程序。有什么建议吗?

【问题讨论】:

    标签: processing nested-loops


    【解决方案1】:

    您可以通过几个简单的步骤来做到这一点,其中一些可能需要重构:

    1. 确定定义模拟结束的条件。
    2. 设置一个仅在模拟完成后才运行的方法。我们将其命名为 Reset() 以简化操作。
    3. Reset() 中,确保重新初始化在创建时初始化的所有全局变量。将它们设置回初始值。
    4. Reset() 中,运行setup()
    5. 顺其自然吧,您的应用程序已被骗重新开始。

    当然,您可能希望组织您的代码,这样您收集的信息就不会被删除,无论是通过将其保存到不同的文件/每次运行新模拟时将其附加到文件中,还是通过保留它在一个不会被重置的全局变量中。我没有足够的细节来详细说明这方面,但我想你会理解我提出的想法。

    玩得开心!

    【讨论】:

    • 效果很好!我不知道您可以再次调用 setup() 并重新初始化所有内容。非常感谢!
    • 很高兴!不要忘记接受答案,这样有相同问题的其他用户就会知道答案在这里确实有效。
    猜你喜欢
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多