Dov'è l'errore?!!?!?!

di il
1 risposte

Dov'è l'errore?!!?!?!

Salve a tutti..sono lo stesso che aveva chiesto aiuto per il sudoku.. Mi ci sto ancora sbattendo... Ho definito una funzione che dovrebbe, data una matrice, e una casella della matrice, dirmi se all'interno della stessa riga,colonna o "quadrato" c'è un'altra casella in cui è possibile mettere un certo numero(anch'esso dato).
Per possibile intendo dire che non ci sono all'interno della sua riga/colonna/quadrato altre caselle con quel numero gia fissato.

Questa procedura che ho definito però non è corretta e non riesco a capire dov'è l'errore..
PROGRAMMO IN VISUAL STUDIO QUINDI NON SEGNALATEMI ERRORI COME INIZIALIZZAZIONI DENTRO I FOR PERCHE' NON SONO ERRORI..

bool More(casella c[M*M][M*M],int i,int j,int num){
       int mati1,matj1;
       int mati= (i/M);
       int matj= (j/M); 
// queste tre istruzioni per sapere in che quadrato siamo
       bool contra=false,contrb=false,contrc=false;
	
       for(int i1=0;i1<M*M;i1++){
              for(int j1=0;j1<M*M;j1++){//ciclo per tutta la matrice
                 if((c[i1][j1].fisso==false)  && ((i==i1 && j==j1)==false{ 
//se il campo fisso è falso e se non ci troviamo nella stessa casella	
                            if(c[i1][j1].inum.IsIn(num)){
//se il campo rappr di interi contiene il numero in questione
		mati1= (i1/M);
		matj1= (j1/M);
// guardo in che quadrato ci troviamo
		if(i1==i)contra=true;
// se è nella stesso riga 
		else if(j1==j)contrb=true;
// se è nella stessa colonna 
		else if(mati==mati1 && matj==matj1)contrc=true;
// se è nello stesso quadrato 
	            }
	       }
                }
         }

         if(contra==false || contrb==false || contrc==false)return false;
         else return true;

//se ha trovato un numero nel campo insieme di interi che è presente solo in quella casella in quella riga oppure in quella colonna oppure in quel quadrata ritorna falso altrimenti vero.

}
PS:La casella è una struttura composta di:
un campo bool che mi dice se la casella ha un num fissato;
un campo intero che è il numero fissato;
una classe che rappresenta un insieme di interi e che serve per sapere quali numeri sono "possibili in quella casella"..

Ringrazio vivamente chi mi rispondesse..

1 Risposte

  • Re: Dov'è l'errore?!!?!?!

    Ciao,

    Quello che hai scritto qui:
    if((c[i1][j1].fisso==false) && ((i==i1 && j==j1)==false
    Non è un'espressione sintatticamente corretta. Non dovrebbe nemmeno compilare...

    Ciaociao
Devi accedere o registrarti per scrivere nel forum
1 risposte