15 puzzle solver: Difference between revisions

Content added Content deleted
No edit summary
Line 138: Line 138:
}
}
bool fZ(const int w){
bool fZ(const int w){
if ((w&i)>0){fI(); if (fU()) return true; --n;}
int a = n;
if ((w&i)>0){fI(); if (fU()) return true; n=a;}
if ((w&g)>0){fG(); if (fU()) return true; --n;}
if ((w&g)>0){fG(); if (fU()) return true; n=a;}
if ((w&e)>0){fE(); if (fU()) return true; --n;}
if ((w&e)>0){fE(); if (fU()) return true; n=a;}
if ((w&l)>0){fL(); if (fU()) return true; --n;}
if ((w&l)>0){fL(); return fU();}
return false;
return false;
}
}