Lancio di due dadi con la classe player e dado

//
//  main.cpp
//  Gioco dei dadi fatto con le classi
//
//  Created by alessandro barazzuol on 03/01/22.
/*
 Scrivere un gioco in C++ che simula il gioco dei dadi: due giocatori (
 PC e Utente) lanciano due dadi:
 a.se esce 1 in entrambi i dadi si perde tutto
 b.se escono due valori diversi si sommano i valori
 c.se escono due 6 si raddoppia la somma ( 24)
 Simulare 10 giocate e visualizzare la classifica.

 */

#include <iostream>
#include "dado.hpp"
#include "player.hpp"

int main(int argc, const char * argv[]) {
    
    srand(time(0));
    
    //dichiaro due players
    player *alessandro= new player("ALESSANDRO");
    player*pc= new player("PC");
    
    //lancio 10 volte i dadi per PC e ALESSANDRO
    for(int i=0;i<10;i++)
    {
         pc->tira(2);
         alessandro->tira(2);
    }
    
    pc->punteggio();
    alessandro->punteggio();
    
    return 0;
}
//
//  dado.cpp
//  classe dado
//
//  Created by alessandro barazzuol on 03/01/22.
//

#include "dado.hpp"

    dado::dado(){}
    
    int dado:: lancia()
    {
         return rand()%6+1;
    }
//
//  dado.hpp
//  definizioni di dado
//
//  Created by alessandro barazzuol on 03/01/22.
//

#ifndef dado_hpp
#define dado_hpp

#include <iostream>
#include<cstdlib>
#include<ctime>
using namespace std;

class dado
{
    
    public:
    dado();
    
    //lancia il dado e ritorna valori da 1 a 6
    int lancia();
    
};
#endif /* dado_hpp */
//
//  player.cpp
//  player
//
//  Created by alessandro barazzuol on 03/01/22.
//

#include "player.hpp"
#include "dado.hpp"
   
player::player(const char *nome)
{
        punti=0;
        this->nome=new char[SIZE];
        strcpy(this->nome,nome);
        
}
    
 
void player:: tira(int n)
{
        //array che contiene n lanci
        int lanci[SIZE]={0};
    
        //creazione e lancio di n dadi
        for(int i=0;i<n;i++)
        {
            lanci[i]=(new dado())->lancia();
            
        }
       
        
        //visualizzazione dei n lanci usciti
        cout<<this->nome;
        for(int i=0;i<n;i++)
        cout<<" "<<lanci[i];
    
        cout<<endl;
        
        calcola(lanci,n);
        
}

void player:: calcola(int lanci[],int n)
{
    //calcolo del punteggio secondo la consegna
    for(int i=0;i<n;i++)
    punti+=lanci[i];
    
    for(int i=0;i<n-1;i++)
    if(lanci[i]==1 && lanci[i+1]==1)
    punti=0;
    
    for(int i=0;i<n-1;i++)
    if(lanci[i]==6 && lanci[i+1]==6)
    punti+=12;
        
    //aspetto che l'utente prema un tasto per procedere
    char c=getchar();
    
}
void player::punteggio()
{
        cout<<this->nome<<" "<< punti<<endl;
}
    
    
char *player::getNome()
{
       return nome;
}
    
//
//  player.hpp
//  classe player
//
//  Created by alessandro barazzuol on 03/01/22.
//

#ifndef player_hpp
#define player_hpp

#include <iostream>
#define SIZE 100

class player
{
    private:
    char *nome;
    int punti;
    
    //cotruttore di un player
    public:
    player(const char*);
    
    //lancio di n dadi
    void tira(int);
    
    //visualizza il punteggio
    void punteggio();
    
    
    //visualizza il nome del player
    char *getNome();
    
    //calcola il punteggio secondo la consegna 
    void calcola(int*,int);
    
};
#endif /* player_hpp */