Salve a tutti, sto ideando un progetto per la scuola e sono incappato in alcune difficolt� nel senso che non riesco a manipolare fluidamente una matrice:
ho creato una classe del tipo:
codice:class carta_mazzo { public: int valore; string seme; };
ho creato un mazzo di carte in questo modo...
codice:carta_mazzo carte[40]; int i; // CONTATORI int cont_seme1 = 1, cont_seme2 = 1, cont_seme3 = 1, cont_seme4 = 1; // CONTATORI DEI SEMI (1 PER OGNI SEME) string seme1 = " di denari ", seme2 = " di bastoni ", seme3 = " di spade ", seme4 = " di coppe "; // DEFINIZIONE DEI SEMI // CREAZIONE MAZZO ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ for (i = 0; i < 40; i++) { if (i <= 9) { // PARTE DA 9 PERCHE' I PARTE DA 0 carte[i].valore = cont_seme1; // ATTRIBUISCE AL VALORE I-ESIMO IL VALORE DEL CONTATORE carte[i].seme = seme1; // ATTRIBUISCE AL VALORE I-ESIMO IL VALORE DELLA STRINGA cont_seme1++; } else if (i > 9 && i <= 19) { carte[i].valore = cont_seme2; carte[i].seme = seme2; cont_seme2++; } else if (i > 19 && i <= 29) { carte[i].valore = cont_seme3; carte[i].seme = seme3; cont_seme3++; } else if (i > 29 && i <= 39) { carte[i].valore = cont_seme4; carte[i].seme = seme4; cont_seme4++; } } //STAMPA DEL MAZZO CREATO-------------------------------------------------------------- //for (int i = 0; i < 40; i++) { // cout << carta[i].valore << carta[i].seme << endl; //} cout << "----- MAZZO CREATO CON SUCCESSO -----" << endl;
il problema sta nell assegnamento delle carte ai vari giocatori in quanto non si sa a priori in quanti giocheranno. Inizialmente ho creato una matrice fissa di [5][8] dove 5 sono i giocatori e 8 le carte per giocatore i questo modo:
codice:for (int i = 0; i < num_giocatori; i++) { string nome_ut; // ASSEGNAMENTO NOMI E CARTE DEI GIOCATORI cout << "NOME GIOCATORE: " << i+1 << endl; cout << " " << endl; cin >> nome_ut; utenti[i] = nome_ut; cout << "l'utente " << i+1 << " e' " << utenti[i]<< endl; for (int j = 0; j < 8; j++) { cout << carteUtenti[i][j].valore << carteUtenti[i][j].seme << endl; } cout << "---------" << endl; cout << " " << endl; }
poi ho provato trovato un altro modo per poter rendere il numero di giocatori variabile:
codice:int giocatori = 0, i, y; int carte_per_giocatore; cout << "num giocatori" << endl; cin >> giocatori; int* mazzo = new int[carte]; carte_per_giocatore = carte / giocatori; cout << "carte per giocatore: " << carte_per_giocatore << endl; for (i = 0; i < giocatori; i++) { for (y = 0; y < carte_per_giocatore; y++) { mazzo[i*carte_per_giocatore + y] = 9; // 9 � casuale ma andrebbe assegnato una carta del mazzo cout << "giocatore " << i << "carta " << mazzo[i] << endl; } }
Il problema � che non riesco a modificare il codice precedentemente scritto con la fuonzione nuova, vorrei poter assegnare un carta_mazzo.valore a tutti i giocatori, magari in un vettore per ogni giocatore in modo da poter essere manipolato pi� facilmente ma non ho idea di come farlo.
Qualcuno saprebbe indicarmi la via?

Rispondi quotando