Código C++:
Ver original
bool Taulell::preDestaparMarcar(char jugada) { bool sortir=false; cout << "INTRODUEIX LA POSICIO" << endl; char posicio1, posicio2; cin >> posicio1; cin >> posicio2; int x=posicio1-97; int y=posicio2-65; if(x<a_files && x>=0 && y<a_colum && y>=0) { if(jugada=='d') //DESTAPAR { if(a_Casella[x][y].obtEstat()==3) { bool mina=a_Casella[x][y].obtHiHaMina(); if(mina==false){ destaparCasella(x,y); sortir=fiJoc(); } else{ char continuar; cout << "HAS TROBAT UNA MINA!" << endl; cout << "VOLS FER UNA NOVA PARTIDA? (s/n)" << endl; cin >> continuar; if(continuar=='s') { eliminarCasella(); preJugar(); } else { cout << "FI PESCAMINES" << endl; sortir=true; } } } } else //MARCAR O DESMARCAR{ marcaCasella(x,y); } } else{ cout << "POSICIO INCORRECTA" << endl; } return sortir; }
Código C++:
Ver original
void Taulell::destaparCasella(int x,int y) { for(int f=-1; f<=1; f++) { for(int c=-1; c<=1; c++) { if((f>=0 && f<a_files) && (c>=0 && c<a_colum)) { if(!a_Casella[x+f][y+c].obtHiHaMina() && a_Casella[x+f][y+c].obtEstat()==3) { if (a_Casella[x+f][x+c].obtNumDeMines()>0) { a_Casella[x][y].modEstat(1); a_CasellesTapades--; } else { a_Casella[x][y].modEstat(1); a_CasellesTapades--; destaparCasella(x+f,y+c); } } } } } }