Tornando al gioco della Tombola, stavo sistemando l'estrazione dei numeri, in quanto prima era fatta male, mettendo la funzione di estrazione all'interno del DO ogni volta andavo a genererare di nuovo i numeri andado a prendere in considerazione solo il numero all'interno dell'indice 0, quindi così facendo ottenevo un estrazione con ripetizione. Avrei potuto anche lasciarla così tanto il suo lavoro lo faceva ugualmente, ma preferisco correggere.
Dunque ho tolto la funzione di estrazione dal DO in modo da estrarre solo i numeri 1 volta e basta e avanzare l'indice ogni volta che si chiede una nuova estrazione.
Però così facendo mi sballa tutti i conteggi.
for(int i=0; i<90; i++){
estrazione[i]=(rand()%90+1);
for(int j=0; j<i; j++){
if(estrazione[i]==estrazione[j]){
i--;
break;
}
}
}
/* for(int j=0; j<90; j++){
cout<<estrazione[j]<<" ";
}*/
cout<<endl;
int u=0;
do{
cout<<"IL NUMERO ESTRATTO E': "<<estrazione[u]<<endl;
cout<<endl;
//questa funzione mi cancella i numeri estratti, ma sballa i conteggi dei numeri estratti (contazeri) e contarighe.
for(int q=0; q<6; q++){
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
if(tabellone[q][i][j]==estrazione[u]){
tabellone[q][i][j]=0;
contazeri++;
cont[q]++;
u++;
}
}
}
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
for(int e=0; e<1; e++){
if(giocatore1[i][j]==estrazione[e]){
giocatore1[i][j]=0;
contazeriG++;
}
}
}
}
cout<<"TABELLONE"<<endl;
for(int q=0; q<6; q++){
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone[q][i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
}
cout<<endl;
cout<<"GIOCATORE 1"<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<giocatore1[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0; i<18; i++){
contarighe[i]=0;
}
for(int i=0; i<3; i++){
contarigheG[i]=0;
}
for(int q=0; q<18; q++){
for(int j=0; j<c; j++){
if(tabellone[q/3][q%3][j]==0){
contarighe[q]++;
}
}
}
for(int q=0; q<3; q++){
for(int j=0; j<c; j++){
if(giocatore1[q][j]==0){
contarigheG[q]++;
}
}
}
for(int i=0; i<18; i++){
if(contarighe[i]==2){
cout<<"AMBO!"<<endl;
}
if(contarighe[i]==3){
cout<<"TERNO!"<<endl;
}
if(contarighe[i]==4){
cout<<"QUATERNA"<<endl;
}
if(contarighe[i]==5){
cout<<"CINQUINA!"<<endl;
}
}
for(int i=0; i<6; i++){
if(cont[i]==15){
cout<<"TOMBOLA! "<<endl;
}
}
for(int i=0; i<3; i++){
if(contarigheG[i]==2){
cout<<"Il giocatore 1 ha fatto Ambo! "<<endl;
}
else if(contarigheG[i]==3){
cout<<"Il giocatore 1 ha fatto Terno! "<<endl;
break;
}
else if(contarigheG[i]==4){
cout<<"Il giocatore 1 ha fatto Quaterna! "<<endl;
}
else if(contarigheG[i]==5){
cout<<"Il giocatore 1 ha fatto Cinquina! "<<endl;
break;
}
if(contazeriG==15){
cout<<"Il giocatore 1 ha fatto TOMBOLA! "<<endl;
}
}
for(int i=0; i<6; i++){
cout<<"zeri matrice "<<i+1<<": "<<cont[i]<<endl;
}
/*for(int i=0; i<3; i++){
cout<<"zeri Giocatore 1: "<<i+1<<" "<<contG[i]<<" "<<endl;
}*/
cout<<"Numeri usciti: "<<contazeri<<endl;
cout<<"zeri giocatore 1: "<<contazeriG<<endl;
for(int i=0; i<18; i++){
cout<<contarighe[i]<<" ";
}
cout<<endl;
for(int i=0; i<3; i++){
cout<<contarigheG[i]<<" ";
}
cout<<endl;
for(int i=0; i<6; i++){
if(cont[i]==15){
tombola=false;
}
}
for(int i=0; i<3; i++){
if(contG[i]==15){
tombola=false;
}
}
if(tombola){
cout<<"Estrarre il prossimo numero?";
cin>>risp;
}
else{
cout<<"GIOCO TERMINATO! "<<endl;
}
}while((risp=='s' || risp=='S') && tombola);
return 0;
}