Esercizio 27 – Simulazione Casinò
- Novembre 03, 2010
- by
- Donatantonio
Scrivere un programma che si comporta come segue:
- Crea due conti correnti uno (conto giocatore) con importo iniziale pari a 1000 euro ed uno (conto casinò) con importo iniziale pari a 100000 euro.
- Prende in input da tastiera un intero n e un double somma e simula il lancio di un dado (con 6 facce). Se il risultato del lancio è n allora il programma trasferisce un importo pari a 5 volte il valore di somma dal conto del casinò al conto del giocatore; se il risultato è diverso da n il programma trasferisce un importo pari a somma dal conto del giocatore a quello del casinò. Il valore di somma deve essere inferiore al saldo del vostro conto e 5 volte più piccolo di quello del conto del casinò.
- Se dopo la scommessa il giocatore dispone ancora di soldi sul conto, il programma chiede se volete continuare a scommettere. Se digitate “si” il programma continua dal punto 2. Se digitate qualcosa di diverso da “si” oppure il saldo è zero il programma si interrompe stampando il saldo del vostro conto.
Infondo all’esercizio è possibile lanciare e scaricare l’eseguibile.
Innanzitutto il codice della classe Dado.java:
import java.util.Random;
public class Dado {
// Metodo Costruttore. Numero di facce impostato a 6.
public Dado()
{
facce = 6;
generatore = new Random();
}
// Metodo che simula il lancio del dado
public int lancia()
{
return 1 + generatore.nextInt(facce);
}
private Random generatore;
private int facce;
}
Quindi le classi per gestire i due conti.
ContoGiocatore.java:
public class ContoGiocatore
{
double contoGio;
// Metodo Costruttore inizializzato con un valore double
public ContoGiocatore(double c)
{
contoGio = c;
}
// Metodo che restituisce l'importo del conto giocatore
public double getContoGiocatore()
{
return contoGio;
}
// Metodo che permette di sottrarre la somma persa dal giocatore
public void sottraiContoGiocatore(double s)
{
double temp = contoGio;
temp = temp - s;
contoGio = temp;
}
/** Metodo che permette di aggiungere la somma vinta dal giocatore.
Somma vinta = somma giocata * 5.
*/
public void aumentaContoGiocatore(double s)
{
double temp = 5*s;
contoGio = contoGio + temp;
}
}
ContoCasino.java:
public class ContoCasino
{
double contoCas;
// Metodo Costruttore ContoCasinò inizializzato con un valore double
public ContoCasino(double c)
{
contoCas = c;
}
// Metodo che restituisce l'importo del conto casinò
public double getContoCasino()
{
return contoCas;
}
/** Metodo che permette di sottrarre una somma vinta da un giocatore
al conto del casinò.
La somma sottratta è pari alla somma giocata dal giocatore moltiplicata
per cinque.
*/
public void sottraiContoCasino(double s)
{
double temp = contoCas;
double temp1 = s*5;
temp = temp - temp1;
contoCas = temp;
}
/** Metodo che permette di aggiungere una somma persa da un giocatore
al conto del casino
*/
public void sommaContoCasino(double s)
{
double temp = contoCas;
temp = temp + s;
contoCas = temp;
}
}
Quindi infine la classe di test che si chiamerà VaiAlCasino.java:
import java.util.Scanner;
public class VaiAlCasino
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
// Costruisco un oggetto dado
Dado d = new Dado();
// Costruisco un nuovo oggetto giocatore e uno casinò
ContoGiocatore fabio = new ContoGiocatore(1000);
ContoCasino casino = new ContoCasino(100000);
String verifica = "si";
System.out.println("*** BENVENUTI AL CASINò ***");
// Simulo la giocata
while ( verifica.equalsIgnoreCase("si"))
{
// Scelgo un numero del dado
System.out.println("Scegli un numero:");
int num = in.nextInt();
if(num>0 && num<7)
{
// Punto una somma di denaro
System.out.println("Punta una somma di denaro: ");
System.out.print("(ricorda che il tuo credito è pari a " + fabio.getContoGiocatore());
System.out.println(" )");
double somma = in.nextDouble();
double contoG = fabio.getContoGiocatore();
double contoC = casino.getContoCasino();
double contoCc = contoC/5;
// Verifico la puntata e il budget del casinò
if ( somma <= contoG && somma <= contoCc)
{
// Simulo il lancio del dado
System.out.println("Lancio il dado...");
int lancio = d.lancia();
System.out.print("Il risulatato del dado è : ");
System.out.println(lancio);
// Verifico se il giocatore vince o perde
if ( lancio == num)
{
System.out.println("Complimenti hai vinto");
fabio.aumentaContoGiocatore(somma);
casino.sottraiContoCasino(somma);
}else{
System.out.println("Peccato, hai perso");
casino.sommaContoCasino(somma);
fabio.sottraiContoGiocatore(somma);
}
}else{
System.out.println("Non puoi puntare quella somma");
}
double newSomma = fabio.getContoGiocatore();
// Verifico se il giocatore può continuare a giocare
if ( newSomma > 0)
{
// Il giocatore sceglie se continuare a giocare
System.out.println("Vuoi continuare a scommettere?");
verifica = in.next();
System.out.print("Il tuo conto è pari a : ");
System.out.println(fabio.getContoGiocatore());
}else{
System.out.println("CONTO ESAURITO");
System.out.println(fabio.getContoGiocatore());
verifica = "no";
}
}
}
}
}
Cliccando qui è possibile scaricare l’eseguibile.

