Prova scritta 7-6-2023 struct BattagliaNavale{ char nome[21]: int nrighe; int ncolonne; char** mat; }; void InizializzaBattagliaNavale(BattagliaNavale& b, const char *s; int n, int p){ if (strlen(s) <=0 || strlen(s)>20) strcpy(b.nome, "D true; for(int i=0; s[i]!='\0'; i++) if (! (s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z')) is_lettere=false: if (!is_letter) strcpy(b.nome, "Default"); else strcpy(b.nome, s); b.nrighe = (n<=0) ? 1: n; b.ncolonne = (p<=0)? 1: p; b.mat = new char* [b.nrighe]; for (int j=0; j< b.nrighe; j++) { b.mat[j]=new char [b.ncolonne]; for (int k=0; k< b.ncolonne; k++) b.mat[j][k]=' '; } return; } bool posizionaNave(BattagliaNavale& b, int r, int c){ if ((r <=0) || (r > b.nrighe) || (c <=0) || (c > b.ncolonne) ) return false; r--; c--; if (b.mat[r][c] == ' ') { b.mat[r][c]='o'; return true; } return false; } bool colpisciNave(BattagliaNavale& b, int r, int c){ if ((r <=0) || (r > b.nrighe) || (c <=0) || (c > b.ncolonne) ) return false; r--; c--; if (b.mat[r][c] == 'o') { b.mat[r][c]='x'; return true; } return false; } void StampaBattagliaNavale(BattagliaNavale b){ cout<< "Nome della battaglia navale: " << b.nome << endl; cout << ' '; for (int i=0; i< b.ncolonne; i++) cout << i+1; cout << endl; for (int j=0; i< b.nrighe; i++) { cout << j+1; for (int k=0; kb.colonne) return; bool trovato; for (int i=0; i< b.nrighe; i++) { // riga i for (int j=0; j<=b.ncolonne-k; j++) { trovato=true; for(int z=0; z