首页 > 解决方案 > 如何多次迭代同一个草图-(处理)

问题描述

我在处理 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;
}

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

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

标签: processingnested-loops

解决方案


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

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

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

玩得开心!


推荐阅读