Visualizzazione dei risultati da 1 a 2 su 2

Discussione: return valore errato

  1. #1

    return valore errato

    buona sera,

    ho scritto un programma che ha come classe un generatore di numeri casuali non ripetibili...
    ora vi implemento il codice:
    codice:
    CLASSE NumeroCasuale
    
    import java.util.Random;
    
    public class NumeroCasuale {
    
        private int numero;
        private int [] controllo=new int [13];
        private Random casuale;
        private boolean b;
    
        //costruttori
        public NumeroCasuale () {
            this.numero=0;
            this.casuale=new Random ();
            this.b=false;
        }
    
        public NumeroCasuale (int n,Random c,boolean b) {
            this.numero=n;
            this.casuale=c;
            this.b=b;
        }
    
        //get-set di numero
        public int getNumero () {
            return numero;
        }
        public void setNumero (int n) {
            this.numero=n;
        }
    
        //metodo int controllo
        public int controllo () {
            for (int i=0;i<controllo.length;i++) {
                controllo[i]=100;
            }
    
            return controllo[13];
        }
    
        //metodo int numero
        public int numero () {
            numero=casuale.nextInt(52);
            this.b=false;
    
            for (int i=0;i<controllo.length;i++) {
                if (controllo[i]==100) {
                    controllo[i]=numero;
                }
            }
    
            do {
                for (int i=0;i<controllo.length;i++) {
                    if (numero==controllo[i]) {
                        b=true;
                        numero=casuale.nextInt(52);
                        break;
                    }
                    if (i==controllo.length) {
                        return numero;
                    }
                }
            } while (b);
    
            return numero;
        }
    
    
    }
    codice:
    CLASSE Main
    
    public class Main {
        public static void main(String[] args) {
    
            //creazione 4giocatori - 2carte
            final int X=2;
            final int Y=4;
            NumeroCasuale [][] giocatori=new NumeroCasuale [X][Y];
    
    
            //impostare le carte ai giocatori
            for (int x=0;x<X;x++) {
                for (int y=0;y<Y;y++) {
                    giocatori[x][y]=new NumeroCasuale ();
                }
            }
    
    
            //stampare le carte dei giocatori
            for (int x=0;x<X;x++) {
                for(int y=0;y<Y;y++) {
                    System.out.println(giocatori[x][y]);
                }
            }
    
        }
    }
    il problema persiste nel output, infatti non mi stampa una serie di numeri casuali non ripetibili da 0 a 51 bensì questo:

    poker.NumeroCasuale@42e816
    poker.NumeroCasuale@9304b1
    poker.NumeroCasuale@190d11
    poker.NumeroCasuale@a90653
    poker.NumeroCasuale@de6ced
    poker.NumeroCasuale@c17164
    poker.NumeroCasuale@1fb8ee3
    poker.NumeroCasuale@61de33

    grazie dell'attenzione

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: return valore errato

    Originariamente inviato da xxstykkyxx
    codice:
            //stampare le carte dei giocatori
            for (int x=0;x<X;x++) {
                for(int y=0;y<Y;y++) {
                    System.out.println(giocatori[x][y]);
                }
            }
    il problema persiste nel output, infatti non mi stampa una serie di numeri casuali non ripetibili da 0 a 51 bensì questo:

    poker.NumeroCasuale@42e816
    poker.NumeroCasuale@9304b1
    poker.NumeroCasuale@190d11
    poker.NumeroCasuale@a90653
    poker.NumeroCasuale@de6ced
    poker.NumeroCasuale@c17164
    poker.NumeroCasuale@1fb8ee3
    poker.NumeroCasuale@61de33

    grazie dell'attenzione
    Stai facendo stampare un oggetto e ovviamente Java non ha idea di come e cosa stampare! Devi dirglielo tu, ridefinendo il metodo toString().
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.