Dopo tanto sono riuscito a capire il problema, ovvero se io scrivevo cosi :
if(campodagioco[riga][colonna]==campodagioco[riga-1][colonna]&&
campodagioco[riga-1][colonna]==campodagioco[riga-2][colonna]&&campodagioco[riga-2][colonna]==campodagioco[riga-3][colonna]){
cout<<"prova";
return(1);}
diceva subito che aveva vinto, mentre se scrivevo cosi :
if(campodagioco[riga][colonna]!=' '&&campodagioco[riga][colonna]==campodagioco[riga-1][colonna]&&
campodagioco[riga-1][colonna]==campodagioco[riga-2][colonna]&&campodagioco[riga-2][colonna]==campodagioco[riga-3][colonna]){
cout<<"prova";
return(1);}
non vince mai nessuno,ovviamente questo problema lo ho con tutti i controlli , vert. orizz. e diagon. Son riuscito a capire che in realta io ho scritto all inizio del main
int riga,colonna,sceltainiziale,vincitore,cpu,g1;
vincitore=1;cpu=1;g1=2;colonna=0;riga=0;
char campodagioco[6][7];
quando richiamo la funzione che verifica un vincitore arrivano colonna=0 e riga=0, se levo le assegnazioni del main dati casuali, il problema e che questa funzione, che vede se ce un vincitore ,io la chiamo dopo la funzione del mossa della cpu e del giocatore , funzioni tutte void, in cui come variabili di ingresso ci sono riga e colonna e campodagioco, il campo da gioco si modifica all interno delle funzioni e esce modificato mentre colonna e riga si modificano ma non escono proprio, per poi passare alla funzione della verifica.Da cosa dipende questo?
funzioni:
void mossacpu (char campodagioco[6][7],int riga, int colonna){
riga=5;
int controllo;
controllo=0;
srand(time(NULL));
colonna = rand() % 7;
while(controllo==0){
if(campodagioco[riga][colonna] != ' ')
{riga--;}
if(campodagioco[riga][colonna] == ' '){
campodagioco[riga][colonna]='O';
controllo=1;}}}
void mossag1(char campodagioco[6][7],int riga, int colonna){
riga=5;
cout<<"Che colonna sclegli?";
cin>>colonna;
int controllo;
controllo=0;
while(controllo==0){
if(campodagioco[riga][colonna] != ' ')
{riga--;}
if(campodagioco[riga][colonna] == ' '){
campodagioco[riga][colonna]='X';
controllo=1;}}}
Pezzo del main:
if(sceltainiziale==2){
inizializzazione(campodagioco,riga,colonna);
while(vincitore !=0){
mossacpu (campodagioco, riga, colonna);
cout<<"colonna uscente ="<<colonna;
win(campodagioco,riga,colonna,cntrl);
if(cntrl==0){
cout<<("Ha vinto la cpu\n");
return(0);}
stampa(campodagioco,riga,colonna);
mossag1(campodagioco,riga,colonna);
win(campodagioco,riga,colonna,cntrl);
if(cntrl==0){
cout<<("Ha vinto la cpu\n");
return(0);