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.