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?