static GPoint drawCoastline (GWindow& window, GPoint start, double length, double theta, int order) {
if(order==0) {
return window.drawPolarLine(start, length, theta);
} else {
start = drawCoastline(window, start, length/3, theta, order-1);
int delta = randomChance(0, 5);
start = drawCoastline(window, start, length.(SOMETHING), theta+delta, order-1);
start = drawCoastline(window, start, length.(SOMETHING), theta-delta, order-1);
return drawCOastline(window, start, length/3, theta, order-1);
}
}~
static void listPermutations(string word) {
listPermutations("", word);
}
static void listPermutations(string prefix, string remaining) {
if(remaining.empty()) {
cout<<prefix<<endl;
}
for(int i=0; i<remaining.size(); i++) {
listPermutations(prefix+remaining[i], remaining.substr(0, i)+remaining.substr(i+1));
}
}