nee, nix informatisches, eher biologisch
Ich habe (unter anderem) dieses Array gebaut und anschließen dann deinen Code eingefügt
Ich häng mal den in meinen Augen interessanten Teil des Codes an
Ich habe (unter anderem) dieses Array gebaut und anschließen dann deinen Code eingefügt
Ich häng mal den in meinen Augen interessanten Teil des Codes an
Code:
//make new list in order of number of flows that contribute to the runon
for (int i=0; i<xsize; i++)
for (int j=0; j<ysize; j++)
{
surroundFlow[i][j]=0;
//Anzahl der 8 umgebenden Zellen, die in die angeschaute entleeren; im ganzen Grid auf 0 setzen
}
//Array initialisieren, mit i Reihen und 3 Spalten, in dem das komplette Grid aufgelistet wird
for (int i=0; i< xsize * ysize;i++)
{//1
runoff_list [i] [0] =-1;
runoff_list [i] [1] =-1;
runoff_list [i] [2] =-1;
}//1
//gesamtes Grid durchgehen
for (int i=0; i<xsize; i++)
for (int j=0; j<ysize; j++)
{
//Die 8 umgebenden Zellen jeder Zelle durchgehen
for (int k=max(0,i-1); k<=min(i+1,xsize-1); k++)
for (int l=max(0,j-1); l<=min(j+1,ysize-1); l++)
{
if (((runoffdirection[k][l]-runoffdirection[k][l]%ysize)/ysize == i) && (runoffdirection[k][l]%ysize == j))
//wenn die angeschaute der umgebenden Zellen in die angeschaute [i][j] Zelle entleert
{
surroundFlow[i][j]++;
//dann wird dieser Wert aufsummiert -> am Ende hat man die Anzahl der zufließenden umgebenden Zellen
}
}
helpFlow = surroundFlow[i][j];
//Den Wert der zufließenden Zellen an Variable übergeben
runoff_list [position][0] = helpFlow;
//Den Wert in die erste Spalte des Arrays eintragen (0 wenn keine Zelle etwas einträgt)
runoff_list [position][1] = i;
//i-Position in die zweite Spalte
runoff_list [position][2] = j;
//j-Position in die dritte Spalte
position++;
//Position im Array immer eins weiter gehen (von 0 bis 99) -> so viele Reihen wie das Grid Zellen hat
}
writeFlowList();
//Datei mit der Anzahl der entleerenden Zellen schreiben
//sortieren
/* int comp_3(const void *v1, const void *v2)
{
int* a = (int*)v1;
int* b = (int*)v2;
if (x[0] != y[0]) return x[0] - y[0];
else return x[1] - y[1];
}*/