feasible=0; if (lab[aktuell.xwert][aktuell.ywert+1]==1){aktuell.ywert++;feasible=1;} elseif(lab[aktuell.xwert-1][aktuell.ywert]==1){aktuell.xwert--;feasible=1;} elseif(lab[aktuell.xwert+1][aktuell.ywert]==1){aktuell.xwert++;feasible=1;} elseif(lab[aktuell.xwert][aktuell.ywert-1]==1){aktuell.ywert--;feasible=1;}
if(feasible){ //Zum naechsten neuen Punkt gehen wegpunkt++; weg[wegpunkt].xwert=aktuell.xwert; weg[wegpunkt].ywert=aktuell.ywert; lab[aktuell.xwert][aktuell.ywert]=3; }
} delete [] weg; }
fals jemand Lust hat kann er ja noch versuchen eine Golfversion anzubieten -- ...fleißig wie zwei WeißbroteDieser Post wurde am 15.09.2003 um 14:10 Uhr von Windalf editiert.
int b,f,p;path_finder(int x,int y,int**l){for(int*w=newint[x*y--];!*l[--x];);for(*l[x]=3;y-b;f?l[w[p+=2]=x][w[p+1]=b]=3:f,!f?l[x][b]=2,x=w[p-=2],b=w[p+1]:f=0)l[x][++b]-1?l[--x][--b]-1?l[++x][--b]-1?l[++x][++b]-1?--x:++f:++f:++f:++f;}