コード例 #1
0
ファイル: Field.java プロジェクト: vlitomsk/fit
  public void nextStep() {
    synchronized (this) {
      if (needRecalc) {
        recalcImpact();
        needRecalc = false;
      }

      for (iter.x = 0; iter.x < mSize; ++iter.x) {
        for (iter.y = 0; iter.y < nSize; ++iter.y) {
          final double imp = impMat[iter.x][iter.y];
          if (rules.dieCond(imp)) {
            fldNew[iter.x][iter.y] = DEAD;
          } else if (rules.birthCond(imp)) {
            fldNew[iter.x][iter.y] = ALIVE;
          }
        }
      }
      swap();
      needRecalc = true;
      recalcImpact();
    }

    setChanged();
    notifyObservers(new FieldUpdate(this));
  }