Lo he solucionado: pongo la solucion por si a alguien le interesa; el primer metodo no he tocado nada solo he modificado el segundo.
Código C++:
Ver originalvoid Taulell::destaparCasella(int x,int y, int f, int c)
{
if((x+f>=0 && x+f<a_files) && (y+c>=0 && y+c<a_colum)){
if(!a_Casella[x+f][y+c].obtHiHaMina() && a_Casella[x+f][y+c].obtEstat()==3){
if (a_Casella[x+f][y+c].obtNumDeMines()>0){
a_Casella[x][y].modEstat(1);
a_CasellesTapades--;
}
if (a_Casella[x+f][y+c].obtNumDeMines()==0){
for(int f=-1; f<=1; f++){
for(int c=-1; c<=1; c++){
a_Casella[x][y].modEstat(1);
a_CasellesTapades--;
destaparCasella(x+f,y+c,0,0);
}
}
}
}
}
}