Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Gioco Mastermind - Output strano

    Allora io devo fare un programma che simuli il gioco Mastermind ma mi dà un output strano

    Classe main
    codice:
    public static void main(String[] args)throws Exception {
            Mastermind Mast=new Mastermind();
            
            InputStreamReader isr=new InputStreamReader(System.in);
            BufferedReader br=new BufferedReader(isr);
            int a[]=new int [4];
            String line;
            
            System.out.println("Inserisci il primo numero");
            line=br.readLine();
            a[0]=Integer.parseInt(line);
    
            System.out.println("Inserisci il secondo numero");
            line=br.readLine();
            a[1]=Integer.parseInt(line);
    
            System.out.println("Inserisci il terzo numero");
            line=br.readLine();
            a[2]=Integer.parseInt(line);
    
            System.out.println("Inserisci il quarto numero");
            line=br.readLine();
            a[3]=Integer.parseInt(line);
    
            System.out.println(Mast.cv); //è una prova
            Mast.Setmiacombinazione(a);
            System.out.println(Mast.mc); //è una prova
            
        }
    e questa è la classe
    codice:
    public class Mastermind {
        Random NUM=new Random();
        int cv[]=new int [4];
        int mc[]=new int [4];
    
        public Mastermind(){
            int i=0;
            
            for(i=0;i<4;i++){
                this.cv[i]=NUM.nextInt(11);
            }
    
            while((this.cv[1]==this.cv[0])){
                this.cv[1]=NUM.nextInt(11);
            }
            while((this.cv[2]==this.cv[1])||(this.cv[2]==this.cv[0])){
                this.cv[2]=NUM.nextInt(11);
            }        
            while((this.cv[3]==this.cv[2])||(this.cv[3]==this.cv[1])||(this.cv[3]==this.cv[0])){
                this.cv[3]=NUM.nextInt(11);
            }
        }
        public void Setmiacombinazione(int vet[]){
            int i=0;
            for(i=0;i<4;i++){
                this.mc[i]=vet[i];
            }
        }
    }
    Allora il programma non è finito perchè mi manca da fare un metodo della classe che controlla la combinazione vincente con quella di input, comunque questo è l output
    codice:
    Inserisci il primo numero
    1
    Inserisci il secondo numero
    2
    Inserisci il terzo numero
    3
    Inserisci il quarto numero
    4
    [I@64c3c749
    [I@7150bd4d
    Come si vede l output delle 2 combinazioni non sono numeri compresi tra 0-10.
    Quindi la mia domanda è: come faccio a far uscire come output i numeri normali e non questa schifezza?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Gioco Mastermind - Output strano

    Originariamente inviato da bombe93
    codice:
            System.out.println(Mast.cv); //è una prova
            System.out.println(Mast.mc); //è una prova
    codice:
        int cv[]=new int [4];
        int mc[]=new int [4];
    [I@64c3c749
    [I@7150bd4d
    [/CODE]
    Gli array non ridefiniscono il toString() per fornire una stringa "gradevole" con l'elenco dei valori. Rimane il toString() implementato in Object che non può dare altro che quella forma particolare.

    Soluzione: fai un ciclo for e stampa i singoli elementi. O usa i toString() statici di java.util.Arrays se ti piace il formato che questi metodi forniscono.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ho usato un semplice ciclo for che mi stampa i singoli elementi del vettore.
    Grazie =)

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.