Visualizzazione dei risultati da 1 a 3 su 3

Discussione: esercizio incompleto

  1. #1

    esercizio incompleto

    Ciao ragazzi devo svolgere un esercizio e mi manca pochissimo per finirlo....Posto di seguito il testo:

    Esercizio Tombola semplificata
    Creare le seguenti classi per simulare il gioco della Tombola:

    - Classe CartellaTombola
    La cartella dalle tombola ha 10 numeri compresi tra 1 e 90, utilizzare un array di interi.
    Ha i seguenti metodi:
    1. controllaNumero = controlla se un numero estratto, fornito come argomento del metodo, è
    presente nella cartella: se si stamperà a video “NN(numero) presente” altrimenti “NN non
    presente”.
    2. segnaNumero = controlla se un numero è presente nella cartella e in tal caso lo segna;
    3. controllaVincita = controlla se è avvenuta la vincita della cartella;
    In caso di vittoria dovrà stampare a video:
    - “AMBO”: se sono presenti 2 numeri
    - “TERNO”: se sono presenti 3 numeri
    - “QUATERNA”: se sono presenti 4 numeri
    - “CINQUINA”: se sono presenti 5 numeri
    - “TOMBOLA”: se si è fatta tombola
    4. toString = descrizione in formato testuale della cartella e dei numeri segnati

    Simulare il gioco della tombola: dopo aver “aperto la cartella”, ad ogni numero estratto eseguire il
    controllo. Sono possibile 3 passaggi:
    – Numero presente in cartella;
    – Segnarlo eventualmente se presente;
    – Controllare la vincita;

    I numeri forniti e le estrazioni fornite sono all'interno di un file di testo (specificato nella linea di
    comando).
    La prima riga contiene i 10 numeri della cartella, gli altri sono i numeri estratti;
    Il gioco finisce quando si è fatto TOMBOLA o si è usato lo 0.
    I numeri sono separati da un solo spazio.

    Di seguito invece posto il codice creato da me fino ad ora:

    CLASSE CARTELLATOMBOLA
    public class CartellaTombola {
    private int a[];
    public int segnati[] = new int[10];
    int conta=0;
    public CartellaTombola(int a[])
    {
    this.a=a;
    }

    public String controllaNumero(int b)
    {
    String s=null;
    int cont=0;
    for(int i=0;i<a.length;i++)
    {
    if(a[i]==b)
    {
    s= b+" presente";
    this.segnaNumero(b);
    }
    else
    cont++;
    }
    if(cont==a.length)
    s= b+" non presente";

    return s;

    }

    public void segnaNumero(int b)
    {
    segnati[conta]=b;
    conta++;
    }

    public String controllaVincita()
    {
    int cont=0;
    String s=null;
    for(int i=0;i<a.length;i++)
    {
    for(int k=0;k<segnati.length;k++)
    {
    if(a[i]==segnati[k])
    cont++;
    }

    if(cont==2)
    s="AMBO";
    if(cont==3)
    s="TERNO";
    if(cont==4)
    s="QUATERNA";
    if(cont==5)
    s="CINQUINA";
    if(cont==10)
    s="TOMBOLA";
    }
    return s;
    }

    /*public String toString
    {

    }
    */

    public void contContenuto()
    {
    for(int i =0;i<segnati.length;i++)
    System.out.println(segnati[i]);
    }
    }

    CLASSE PROVA(main)
    import java.io.*;

    public class Prova {
    public static void main(String[] args) throws IOException {

    String cartella="";
    String estrazioni="";
    String riga="";

    BufferedReader filebuf = new BufferedReader(new FileReader("Tombola.txt"));
    cartella =filebuf.readLine();
    riga = filebuf.readLine();
    while (riga != null)
    {
    estrazioni = estrazioni+riga+" ";
    riga = filebuf.readLine();
    }
    filebuf.close();

    String []a;
    a=cartella.split(" ");

    String []b;
    b=estrazioni.split(" ");

    System.out.println(b.length);

    int []card = new int [a.length];
    for(int k=0;k<a.length;k++)
    {
    card[k]=Integer.parseInt(a[k]);
    }

    int []estr = new int [b.length];
    for(int r=0;r<b.length;r++)
    {
    estr[r]=Integer.parseInt(b[r]);
    }

    CartellaTombola c = new CartellaTombola(card);
    for(int y=0;y<estr.length;y++)
    {
    c.controllaNumero(estr[y]);
    }

    System.out.println(c.controllaVincita());
    }
    }

    IL problema è ke il programma non funziona bene...e poi non riesco a capire dove implementare il controllo se si è fatta Tombola o se 1numero è 0, così come ora il programma legge cmq tutti i numeri anche se si è già fatta Tombola o 1numero è 0!
    Grazie mille a tutti

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Il tag CODE non è un optional.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Dopo avere letto da file la cartella ed i numeri estratti, dovresti avere un ciclo in cui controlli che:
    - non siano finiti i numeri estratti dal file
    - il numero estratto non sia 0
    - non si sia fatto tombola

    codice:
    int i = 0;
    while (i < estr.length && estr[i] != 0 && strcmp("TOMBOLA", c.controllaVincita()) != 0)
    {
    	controllaNumero(estr[i])
    }
    System.out.println(c.controllaVincita());
    Attenzione perchè nel metodo controllaVincita() dovresti inserire anche il caso in cui si è perso così da poter stampare a video "HAI PERSO".

    Saluti.

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.