perché tu hai una matrice che riempi con un valore e poi controlli per un altro valore, cioè

codice:
 public CampoMinato(int r, int c){
    	matr = new int[r][c];
    	for(int i=0;i<matr.length;i++)
    		for(int j=0;j<matr.length;j++)
    			matr[i][j] = NONSC;
    	righe = r;
    	colonne = c;
    }
ma poi

codice:
    public int getCelleScoperte(){
    	for(int i=0;i<righe;i++){
    		for(int j=0;j<colonne;j++){
    			if(matr[i][j] == NONSC_CHAR)
    				celleScoperte++;
    		}
    	}
    	return celleScoperte;
    }
se prima assegni il valore di NOSC e poi controlli con NONSC_CHAR non vai lontano.
il carattere "-" lo visualizzi a video indipendentemente da come sotto rappresenti il dato (questo vuole dire separare la rappresentazione effettiva delle informazioni dalla rappresentazione grafica).