Devi far tirare i dadi al giocatore altrimenti il punteggio non viene mai modificato:
public static void main(String[] args) {
Uomo t1 = new Uomo();
Uomo t2 = new Uomo("renzo", "architetto", 1000);
Giocatore a1 = new Giocatore("AM", "nessuno", 0, "Samantha");
a1.tira(); // <------ QUI
System.out.println(t1.Tutto());
System.out.println(t2.Tutto());
System.out.println(a1.Tutto());
}
Comunque ci sono diverse cose che non vanno nel tuo codice:
1) i metodi e le variabili devono sempre iniziare con un carattere minuscolo
2) il metodo Tutto(), ovvero il metodo che trasforma il tuo oggetto in una stringa, è gia presente in ogni oggetto, si chiama toString e viene ereditato da Object. Devi solo ridefinirlo.
Es:
@Override
public String toString(){
return nome + "," + lavoro + "," + stipendio + "," + NomeManager + "," + punteggio;
}
Inoltre ti offre anche dei vantaggi: ad esempio se passi al println() un oggetto che ha ridefinito il toString, il println() stampa direttamente il risultato del toString anche se tu non lo invochi espicitamente.
Ovvero println(a1) equivale a println(a1.toString()).
3)Non usare mai numeri magici:
in Giocatore.java
Dado_1 = new Dado(6);
quel 6 da dove salta fuori? che cos'è? che significa? In questo caso è banale capire che è il numero di facce del dado ma immagina di leggere il codice di un programma un "po'" più corposo scritto da qualcun altro in cui trovi numeri sparsi per il codice... non è piacevole.
Nel tuo caso se il numero di facce è costante allora è meglio definire una costante:
in Giocatore:
private final int NUM_FACCE_DADO = 6;
e al costruttore del Dado passi:
Dado dado1 = new Dado(NUM_FACCE_DADO);
4) usa sempre nomi di variabili significativi: ad esempio nel costruttore del Dado "quale" non vuol dire un granchè; riceve il numero delle fracce del dado, quindi perchè non chiamarlo numFacce o qualcosa del genere?
5)
public Dado(int quale) {
faccia = 6;
caso = new Random();
}
passi al costruttore il numero di facce (quale), ma poi lo ignori e assegni un valore scelto da te