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

Rispondi quotando