bool CampoMinas::descubreCasilla(const Coordenada &c){ bool res; if ((c.getCoordX()>dimx)||(c.getCoordY()>dimy)||(c.getCoordX()<1)||(c.getCoordY()<1)){ res=false; } else{ if (getCasilla(c).getDescubierta()){ res=false; } else{ getCasilla(c).setDescubierta(); res=true; } } return(res); }
bool CampoMinas::marcaCasilla(const Coordenada &c){ bool res; if ((c.getCoordX()>getDimX())||(c.getCoordY()>getDimY())||(c.getCoordX()<1)||(c.getCoordY()<1)){ res=false; } else{ if (getCasilla(c).getDescubierta()){ res=false; } else{ if (getCasilla(c).getMarcada()){ res=false; } else{ getCasilla(c).setMarcada(); res=true; } } } return(res); }
void CampoMinas::setNumMinasAlrededorCasilla(Coordenada &c){ int x=c.getCoordX(), y=c.getCoordY(),minas=0; if ((x-1)<1){ if((y+1)>getDimY()){ if((casilla[x][y-1]).getMina()!=NULL) minas++; if((casilla[x][y-2]).getMina()!=NULL) minas++; if((casilla[x-1][y-2]).getMina()!=NULL) minas++; } else{ if((y-1)<1){ if((casilla[x-1][y]).getMina()!=NULL) minas++; if((casilla[x][y]).getMina()!=NULL) minas++; if((casilla[x][y-1]).getMina()!=NULL) minas++; } else{ if((casilla[x][y-1]).getMina()!=NULL) minas++; if((casilla[x][y-2]).getMina()!=NULL) minas++; if((casilla[x-1][y-2]).getMina()!=NULL) minas++; if((casilla[x-1][y]).getMina()!=NULL) minas++; if((casilla[x][y]).getMina()!=NULL) minas++; } } } else{ if ((x+1)>getDimX()){ if((y+1)>getDimY()){ if((casilla[x-2][y-1]).getMina()!=NULL) minas++; if((casilla[x-2][y-2]).getMina()!=NULL) minas++; if((casilla[x-1][y-2]).getMina()!=NULL) minas++; } else{ if((y-1)<1){ if((casilla[x-1][y]).getMina()!=NULL) minas++; if((casilla[x-2][y]).getMina()!=NULL) minas++; if((casilla[x-2][y-1]).getMina()!=NULL) minas++; } else{ if((casilla[x-2][y-1]).getMina()!=NULL) minas++; if((casilla[x-2][y-2]).getMina()!=NULL) minas++; if((casilla[x-1][y-2]).getMina()!=NULL) minas++; if((casilla[x-1][y]).getMina()!=NULL) minas++; if((casilla[x-2][y]).getMina()!=NULL) minas++; } } } else{ if((y+1)>getDimY()){ if((casilla[x-2][y-1]).getMina()!=NULL) minas++; if((casilla[x-2][y-2]).getMina()!=NULL) minas++; if((casilla[x-1][y-2]).getMina()!=NULL) minas++; if((casilla[x][y-1]).getMina()!=NULL) minas++; if((casilla[x][y-2]).getMina()!=NULL) minas++; } else{ if((y-1)<1){ if((casilla[x-1][y]).getMina()!=NULL) minas++; if((casilla[x-2][y]).getMina()!=NULL) minas++; if((casilla[x-2][y-1]).getMina()!=NULL) minas++; if((casilla[x][y]).getMina()!=NULL) minas++; if((casilla[x][y-1]).getMina()!=NULL) minas++; } else{ if((casilla[x-2][y-1]).getMina()!=NULL) minas++; if((casilla[x-2][y-2]).getMina()!=NULL) minas++; if((casilla[x-1][y-2]).getMina()!=NULL) minas++; if((casilla[x][y-1]).getMina()!=NULL) minas++; if((casilla[x][y-2]).getMina()!=NULL) minas++; if((casilla[x-1][y]).getMina()!=NULL) minas++; if((casilla[x-2][y]).getMina()!=NULL) minas++; if((casilla[x][y]).getMina()!=NULL) minas++; } } } } casilla[x-1][y-1].setNumMinasAlrededor(minas); }