Buongiorno a tutti e buona Epifania, continuando il discorso di questo thread di qualche tempo fa
https://www.iprogrammatori.it/forum-programmazione/cplusplus/aiuto-con-matrice-t45398.html, ho "finito", il gioco della tombola fatto da me.
Mi rendo conto però che il codice è grezzo, lungo, poco leggibile, ma nonostante tutti mi sento soddisfatto perchè fatto d me.
Ora mi potete dare qualche consiglio su come snellire il codice, cosa cambiare e/o migliorare?
#include <cstdlib>
#include <iostream>
#include <ctime>
using namespace std;
/*
*
*/
int main(int argc, char** argv) {
int r=3, c=5, estrazione[90];
int contazeri=0, cont[5], contarighe[18];
int contazeriG=0, contG[3], contarigheG[3];
char risp;
bool tombola=true;
for(int i=0; i<5; i++){
cont[i]=0;
}
for(int i=0; i<18; i++){
contarighe[i]=0;
}
for(int i=0; i<3; i++){
contarigheG[i]=0;
}
for(int i=0; i<3; i++){
contG[i]=0;
}
int tabellone1[r][c]={{1, 2, 3, 4, 5}, {11, 12, 13, 14, 15}, {21, 22, 23, 24, 25}},
tabellone2[r][c]={{6, 7, 8, 9, 10}, {16, 17, 18, 19, 20}, {26, 27, 28, 29, 30}},
tabellone3[r][c]={{31, 32, 33, 34, 35}, {41, 42, 43, 44, 45}, {51, 52, 53, 54, 55}},
tabellone4[r][c]={{36, 37, 38, 39, 40}, {46, 47, 48, 49, 50}, {56, 57, 58, 59, 60}},
tabellone5[r][c]={{61, 62, 63, 64, 65}, {71, 72, 73, 74, 75}, {81, 82, 83, 84, 85}},
tabellone6[r][c]={{66, 67, 68, 69, 70}, {76, 77, 78, 79, 80}, {86, 87, 88, 89, 90}};
int giocatore1[r][c]={{16, 21, 31, 42, 60}, {1, 18, 33, 53, 62},{2, 38, 55, 69, 74}};
srand((unsigned) time(NULL));
cout<<"TABELLONE"<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone1[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone2[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone3[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone4[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone5[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone6[i][j]<<" ";
}
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<<endl;
do{
for(int i=0; i<80; i++){
estrazione[i]=(rand()%90+1);
for(int j=0; j<i; j++){
if(estrazione[i]==estrazione[j]){
i--;
break;
}
}
}
for(int i=0; i<1; i++){
cout<<"IL NUMERO ESTRATTO E': "<<estrazione[i]<<endl;
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
for(int e=0; e<1; e++){
if(tabellone1[i][j]==estrazione[e]){
tabellone1[i][j]=0;
cont[0]++;
contazeri++;
}
if(tabellone2[i][j]==estrazione[e]){
tabellone2[i][j]=0;
cont[1]++;
contazeri++;
}
if(tabellone3[i][j]==estrazione[e]){
tabellone3[i][j]=0;
cont[2]++;
contazeri++;
}
if(tabellone4[i][j]==estrazione[e]){
tabellone4[i][j]=0;
cont[3]++;
contazeri++;
}
if(tabellone5[i][j]==estrazione[e]){
tabellone5[i][j]=0;
cont[4]++;
contazeri++;
}
if(tabellone6[i][j]==estrazione[e]){
tabellone6[i][j]=0;
cont[5]++;
contazeri++;
}
if(giocatore1[i][j]==estrazione[e]){
giocatore1[i][j]=0;
contazeriG++;
}
}
}
}
cout<<"TABELLONE"<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone1[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone2[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone3[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone4[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone5[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
cout<<tabellone6[i][j]<<" ";
}
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 j=0; j<c; j++){
if(tabellone1[0][j]==0){
contarighe[0]++;
}
if(tabellone1[1][j]==0){
contarighe[1]++;
}
if(tabellone1[2][j]==0){
contarighe[2]++;
}
if(tabellone2[0][j]==0){
contarighe[3]++;
}
if(tabellone2[1][j]==0){
contarighe[4]++;
}
if(tabellone2[2][j]==0){
contarighe[5]++;
}
if(tabellone3[0][j]==0){
contarighe[6]++;
}
if(tabellone3[1][j]==0){
contarighe[7]++;
}
if(tabellone3[2][j]==0){
contarighe[8]++;
}
if(tabellone4[0][j]==0){
contarighe[9]++;
}
if(tabellone4[1][j]==0){
contarighe[10]++;
}
if(tabellone4[2][j]==0){
contarighe[11]++;
}
if(tabellone5[0][j]==0){
contarighe[12]++;
}
if(tabellone5[1][j]==0){
contarighe[13]++;
}
if(tabellone5[2][j]==0){
contarighe[14]++;
}
if(tabellone6[0][j]==0){
contarighe[15]++;
}
if(tabellone6[1][j]==0){
contarighe[16]++;
}
if(tabellone6[2][j]==0){
contarighe[17]++;
}
}
for(int j=0; j<c; j++){
if(giocatore1[0][j]==0){
contarigheG[0]++;
}
if(giocatore1[1][j]==0){
contarigheG[1]++;
}
if(giocatore1[2][j]==0){
contarigheG[2]++;
}
}
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;
}