コード例 #1
0
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);
}
コード例 #2
0
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);
}
コード例 #3
0
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);
}