MiorResultWriter.java
1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package mior.view;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
import mior.model.IMiorModel;
import mior.model.IMiorUpdateListener;
import mior.model.MiorMM;
import mior.model.MiorOM;
public class MiorResultWriter implements IMiorUpdateListener {
private int step;
private PrintWriter output;
private int lastCO2;
private int CO2;
private static final String SSEP = "\t";
private static final String SEP = "\t\t";
public MiorResultWriter(String outputPath) {
try {
output = new PrintWriter(new BufferedWriter(new FileWriter(outputPath)));
output.println("#" + SSEP + "nbMM" + SSEP + "nbMMa" + SSEP + "CMM" + SEP + "COM" + SEP + "CO2" + SEP + "Total" + SEP + "dCO2");
} catch (Exception e) {
throw new RuntimeException("Invalid output file", e);
}
}
@Override
public void onMiorModelUpdated(IMiorModel model) {
step++;
int mmTotalActive = 0;
int mmTotalCarbon = 0;
int omTotalCarbon = 0;
lastCO2 = Math.min(CO2, model.getWorld().CO2);
CO2 = model.getWorld().CO2;
for (MiorMM mm : model.getMMList()) {
mmTotalCarbon += mm.getCarbone();
if (mm.dormance == 0) {
mmTotalActive ++;
}
}
for (MiorOM om : model.getOMList()) {
omTotalCarbon += om.getCarbone();
}
output.print(step);
output.append(SSEP);
output.print(model.getMMList().length);
output.append(SSEP);
output.print(mmTotalActive);
output.append(SSEP);
output.print(mmTotalCarbon);
output.append(SEP);
output.print(omTotalCarbon);
output.append(SEP);
output.print(CO2);
output.append(SEP);
output.print(mmTotalCarbon + omTotalCarbon + CO2);
output.append(SEP);
output.println(CO2 - lastCO2);
output.flush();
}
}