Yes, but when I generate map I do this (very simplified):
Code:
enum {
intOcean=0,
intLand,
intMountain
};
void generate() {
// make ocean
for (i=0;...) for (j=0;...) intMap[i][j]=intOcean;
}
// make land:
intMap[W/2][H/2]=intLand;
// Add more land:
for (k=0;k<MAX_LAND;k++) {
for (i=1;...) for (j=1;...) if (intMap[i][j]==intOcean && (intMap[i-1][j]==intLand||intMap[i+1][j]==intLand...)) { intMap[i][j]=intLand;}
}
// Add mountains:
for (k=0;k<MAX_MOUNTAINS;k++) {...}
// Add something else....
...
}
and then I got huge switch:
Code:
for (i=0;...) for (j=0;...) {
switch(intMap[i][j]) {
case intOcean:
map[i][j]=new Ocean;
break;
case intLand:
map[i][j]=new Land;
break;
....
}
}
So I want to know: this code utilises a procedural approach to generate map. Can it be done with OOP methods? Without last switch?