Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C++] Linking Sorgenti

  1. #1

    [C++] Linking Sorgenti

    Ciao, ho un mio progetto diviso in questi file:

    main.cpp
    giocatore.cpp
    giocatore.h
    mazzo.cpp
    mazzo.h

    Ma non riesco mai a compilare mai questi file, forze perchè sbagglioa d inserire gli include (utilizzo devc++), qualcuno sa dirmi come devo fare? Ho provato a fare come vedevo sul mio libro ma niente...

    Grazie

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    facci vedere il contenuto dei files,


  3. #3
    codice:
    //main.cpp
    int main()
    {
          mazzo carte;
          giocatore player1;
          //arbitro giudice;
    
          carte.setMescola();
    
          player1.setPesca(carte);
          //player1.setCambia();
          player1.getCarte(carte);
    
          //giudice.controlla(); 
           
          system("PAUSE");	
          return 0;
    }
    codice:
    //giocatore.h
    #ifndef GIOCATORE
    #define GIOCATORE
    
    class giocatore {
    
          public:
          void setPesca(const mazzo &);
          void setCambia();
          void getCarte(const mazzo &);
    
          private:
          int cartemano[5][2];
    };
    
    #endif
    codice:
    #ifndef MAZZO
    #define MAZZO
    //mazzo.h
    class mazzo {
          friend class giocatore;
    
          public:
          void setMescola(); //Mescola il mazzo
          mazzo();
    
          private:
          const char *seme[4];
          const char *numero[7];
          int deck[4][7];
          void setAzzeraMazzo(); //Azzera il mazzo
    };
    
    #endif
    codice:
    //giocatore.cpp
    void giocatore::setPesca(const mazzo &carte) {
        int row, column, card;
    
       for (card = 1; card <= 5; card++ )
    
          for (row = 0; row <= 3; row++ )
    
             for (column = 0; column <= 6; column++ )
    
                if ( carte.deck[ row ][ column ] == card ) {
                   cartemano[card-1][0] = row;
                   cartemano[card-1][1] = column;
                }
    }
    
    void giocatore::getCarte(const mazzo &carte) {
        int i;
        
        cout << "Le carte che hai in mano sono:" << endl;
        for (i = 0; i < 5; i++)
            cout << carte.seme[cartemano[i][0]] << " " << carte.numero[cartemano[i][1]] << endl;
    }
    codice:
    //mazzo.cpp
    mazzo::mazzo() {
          seme[0] = "Cuori";
          seme[1] = "Mattoni";
          seme[2] = "Picche";
          seme[3] = "Fiori";
          numero[0] = "Asso";
          numero[1] = "Re";
          numero[2] = "Donna";
          numero[3] = "Jack";
          numero[4] = "Dieci";
          numero[5] = "Nove";
          numero[6] = "Otto";
          setAzzeraMazzo();
    }
    
    void mazzo::setMescola()
    {
       int row, column;
    
       setAzzeraMazzo();
    
       srand( time(0) );
    
       for (int card = 1; card <= 28; card++) {
          do {
             row = rand() % 4;
             column = rand() % 13;
          }
          while( deck[ row ][ column ] != 0 );
    
          deck[ row ][ column ] = card;
       }
    }
    
    void mazzo::setAzzeraMazzo() {
       int row, column;
    
       for (row = 0; row <= 3; row++)
           for (column = 0; column <= 6; column++)
               deck[ row ][ column ] = 0;
    }

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Gli errori erano in gran parte include mancanti; se fai un file A.h in cui dichiari una classe A che implementi in un file A.cpp, in A.cpp devi includere A.h. Inoltre devi mettere tutti gli altri include necessari, ad esempio in giocatore.h devi includere mazzo.h. Inoltre con c++ devi includere gli header di libreria come stdlib.h, time.h, ecc ecc. Io li ho inclusi usando la forma c++, ovvero cstdlib invece di stdlib.h e ctime invece di time.h. Infine se usi cout per stampare devi dichiare che usi il namespace std e devi includere iostream. Ecco il codice compilante,



    codice:
    //main.cpp
    #include "mazzo.h"
    #include "giocatore.h"
    
    #include <cstdlib>
    
    
    int main()
    {
          mazzo carte;
          giocatore player1;
          //arbitro giudice;
    
          carte.setMescola();
    
          player1.setPesca(carte);
          //player1.setCambia();
          player1.getCarte(carte);
    
          //giudice.controlla(); 
           
          system("PAUSE");	
          return 0;
    }
    codice:
    //giocatore.h
    #ifndef GIOCATORE
    #define GIOCATORE
    
    #include "mazzo.h"
    
    class giocatore {
    
          public:
          void setPesca(const mazzo &);
          void setCambia();
          void getCarte(const mazzo &);
    
          private:
          int cartemano[5][2];
    };
    
    #endif
    codice:
    #ifndef MAZZO
    #define MAZZO
    //mazzo.h
    class mazzo {
          friend class giocatore;
    
          public:
          void setMescola(); //Mescola il mazzo
          mazzo();
    
          private:
          const char *seme[4];
          const char *numero[7];
          int deck[4][7];
          void setAzzeraMazzo(); //Azzera il mazzo
    };
    
    #endif
    codice:
    //giocatore.cpp
    #include "mazzo.h"
    #include "giocatore.h"
    
    #include <iostream>
    
    using namespace std;
    
    void giocatore::setPesca(const mazzo &carte) {
        int row, column, card;
    
       for (card = 1; card <= 5; card++ )
    
          for (row = 0; row <= 3; row++ )
    
             for (column = 0; column <= 6; column++ )
    
                if ( carte.deck[ row ][ column ] == card ) {
                   cartemano[card-1][0] = row;
                   cartemano[card-1][1] = column;
                }
    }
    
    void giocatore::getCarte(const mazzo &carte) {
        int i;
        
        cout << "Le carte che hai in mano sono:" << endl;
        for (i = 0; i < 5; i++)
            cout << carte.seme[cartemano[i][0]] << " " << carte.numero[cartemano[i][1]] << endl;
    }
    codice:
    #include "mazzo.h"
    
    #include <ctime>
    #include <cstdlib>
    
    //mazzo.cpp
    mazzo::mazzo() {
          seme[0] = "Cuori";
          seme[1] = "Mattoni";
          seme[2] = "Picche";
          seme[3] = "Fiori";
          numero[0] = "Asso";
          numero[1] = "Re";
          numero[2] = "Donna";
          numero[3] = "Jack";
          numero[4] = "Dieci";
          numero[5] = "Nove";
          numero[6] = "Otto";
          setAzzeraMazzo();
    }
    
    void mazzo::setMescola()
    {
       int row, column;
    
       setAzzeraMazzo();
    
       srand( time(0) );
    
       for (int card = 1; card <= 28; card++) {
          do {
             row = rand() % 4;
             column = rand() % 13;
          }
          while( deck[ row ][ column ] != 0 );
    
          deck[ row ][ column ] = card;
       }
    }
    
    void mazzo::setAzzeraMazzo() {
       int row, column;
    
       for (row = 0; row <= 3; row++)
           for (column = 0; column <= 6; column++)
               deck[ row ][ column ] = 0;
    }

  5. #5
    Grazie mille...

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.