Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2017
    Messaggi
    14

    [C++] manipolazione matrici

    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?
    Ultima modifica di LeleFT; 05-06-2017 a 17:12 Motivo: Aggiunti i tag CODE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.