Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177

    [java]somma facce di un dado

    Ciao devo realizzare un programma che calcolila somma delle facce superiori di due dadi.

    codice:
    import java.util.*;
    class Dado{
    
        int facciasuperiore;
    
        Random r;
        Dado(){
             r=new Random();
            facciasuperiore=0;
        
        }
        public int getFacciasuperiore(){
            return facciasuperiore;
        }
        public void tiraDado(){
                facciasuperiore= 1+r.nextInt(6);
            }
            /**restituisce la somma tra il valore della faccia superiore del dado
        che esegue il metodo e del dado specificato come parametro*/
        public int piu(Dado d){
            d.tiraDado();
            facciasuperiore+=d.getFacciasuperiore();
            return facciasuperiore;
        }
        public String toString(){
            String s="la somma della faccia del dado più dado1 è:"+facciasuperiore;
            return s;
        }    
    }
    poi da main:

    codice:
    class TestDado{
    public static void main(String[] args){
        Dado dado=new Dado();
        Dado dado1=new Dado();
        dado.tiraDado();
        dado1.tiraDado();
        int faccia1=dado.getFacciasuperiore();
        int faccia2=dado1.getFacciasuperiore();
        System.out.println(dado1.piu(dado1));
        System.out.println(dado1.toString());
        
    }
    }
    Il compilatore stampa come somma lo stesso valore della faccia del dado1.Perchè?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da el92 Visualizza il messaggio
    Il compilatore stampa come somma lo stesso valore della faccia del dado1.Perchè?
    Innanzitutto non mi pare abbia granché senso che il metodo piu() invochi tiraDado() sul Dado in argomento.
    Poi comunque nel main fai dado1.piu(dado1) ovvero lo stesso dado. Siccome dentro 'piu' fai tiraDado, i due tiraDado() all'inizio del main non sono serviti a nulla.
    Infine, il primo println ti fornisce un valore (numero casuale raddoppiato) e il secondo println stampa sempre quello.

    Di sensato c'è poco in questo codice ...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177
    ciao alla fine ho risolto modificando il metodo più() e qualcosina nel main come dicevi tu grazie 1000 davvero molto gentile

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.