Problema combinazioni casuali slot machine

di il
1 risposte

Problema combinazioni casuali slot machine

Buonasera, sto facendo un progetto di un simulatore di slotmachine ma mi sono bloccato su un punto. Ho creato tutte le combinazioni vincenti, ma come posso fare in modo che la macchina "giri" e quindi appaiano combianzioni casuali?
Ecco il mio codice, scusate il disordine:



public class SlotMachine
{
  int credito = 0;
  static int costo = 1;
  
  //dichiaro combinazioni e slots
  private Boolean comb1;
  private Boolean comb2;
  private Boolean comb3;
  private Boolean comb4;
  private String slot1;
  private String slot2;
  private String slot3 ;
  
  //dichiaro variabili
  private String mela;
  private String limone;
  private String ciliegia;
  private String pera;
  private String banana;
  private String stella;
  private int NumeroRandom;
  
  
  public void setMela(String mela)
  {
    this.mela = mela ;
    return ;
    
    
  }
  
  public void setLimone(String limone)
  {
    this.limone = limone;
    return;
    
    
  }
  
  public void setCiliegia(String ciliegia)
  {
    this.ciliegia = ciliegia ;
    return;
    
    
  }
  
  public void setPera(String pera)
  {
    this.pera = pera ;
    return;
    
    
  }
  
  public void setBanana(String banana)
  {
    this.banana = banana ;
    return;
    
    
  }
  
  public void setStella(String stella)
  {
    this.stella = stella ;
    return;
    
    
  }
  
   public void setSlot1(String slot1)
  {
    this.slot1 = slot1 ;
    return;
    
    
  }
  
   public void setSlot2(String slot2)
  {
    this.slot2 = slot2 ;
    return;
    
    
  }
  
  public void setComb(String mela, String limone,String ciliegia,String pera,String banana, String stella, String slot1, String slot2, String slot3)
  {
     
      
      
      // preparo il primo tipo di combinazioni, comb1, in cui tutti gli slot hanno gli stessi simboli di frutta
      comb1 = (slot1== mela && slot2== mela && slot3 == mela|| slot1==limone && slot2== limone && slot3 ==limone || slot1== ciliegia && slot2==ciliegia && slot3 ==ciliegia ||
               slot1== pera && slot2== pera && slot3 ==pera   ||
               slot1== banana && slot2==banana && slot3 ==banana);
        
               
               // preparo il secondo tipo di combinazioni, com2, in cui due slot vicini hanno lo stesso tipo di frutta e il terzo no
    comb2 =(slot1== limone && slot2== mela && slot3 == mela && slot1== mela && slot2== mela && slot3 == limone|| slot1== mela && slot2== mela && slot3 ==ciliegia ||
            slot1== mela && slot2== mela && slot3 ==pera   ||
            slot1== mela && slot2== mela && slot3 ==banana || slot1==limone && slot2== limone && slot3 == mela||
            slot1==mela && slot2== limone && slot3 ==limone || slot1==limone && slot2== limone && slot3 ==ciliegia || slot1==limone && slot2== limone && slot3 ==pera   ||
            slot1==limone && slot2== limone && slot3 ==banana   || slot1== mela && slot2== mela && slot3 == ciliegia||
            slot1==limone && slot2== limone && slot3 == ciliegia || slot1== mela && slot2==ciliegia && slot3 ==ciliegia || slot1== pera && slot2== pera && slot3 ==ciliegia   ||
            slot1== banana && slot2==banana && slot3 ==ciliegia   || slot1== mela && slot2== mela && slot3 == pera|| 
            slot1==limone && slot2== limone && slot3 ==pera || slot1== ciliegia && slot2==ciliegia && slot3 ==pera || slot1== mela && slot2== pera && slot3 ==pera   ||
            slot1== banana && slot2==banana && slot3 ==pera   || slot1== mela && slot2== mela && slot3 == banana||
            slot1==limone && slot2== limone && slot3 ==banana || slot1== ciliegia && slot2==ciliegia && slot3 ==banana || slot1== pera && slot2== pera && slot3 ==banana   ||
            slot1== mela && slot2==banana && slot3 ==banana    ||  slot1==limone && slot2== mela && slot3 == mela || 
            slot1== limone && slot2==ciliegia && slot3 ==ciliegia || slot1== limone && slot2== pera && slot3 ==pera   ||
            slot1== limone && slot2==banana && slot3 ==banana || slot1== ciliegia && slot2== mela && slot3 == mela||
            slot1==ciliegia && slot2== limone && slot3 ==limone  || slot1== ciliegia && slot2== pera && slot3 ==pera   ||
            slot1== ciliegia && slot2==banana && slot3 ==banana || slot1==pera  && slot2== mela && slot3 == mela|| slot1==pera && slot2== limone && slot3 ==limone ||
            slot1== pera && slot2==ciliegia && slot3 ==ciliegia ||
            slot1== pera && slot2==banana && slot3 ==banana || slot1== banana && slot2== mela && slot3 == mela||
            slot1==banana && slot2== limone && slot3 ==limone || slot1== banana && slot2==ciliegia && slot3 ==ciliegia || slot1== banana && slot2== pera && slot3 ==pera   ||
            slot1== banana && slot2==banana && slot3 ==banana);
             //preparo il terzo tipo di combinazioni (comb3), in cui abbiamo 2 stelle vicine e un simbolo di frutta
     comb3 = (slot1== stella && slot2== stella && slot3== mela || slot1== stella && slot2== stella && slot3== limone || slot1== stella && slot2== stella && slot3== ciliegia || 
              slot1== stella && slot2== stella && slot3== pera || slot1== stella && slot2== stella && slot3== banana ||  slot1== mela && slot2== stella && slot3== stella  ||
              slot1== limone && slot2== stella && slot3== stella || slot1== ciliegia && slot2== stella && slot3== stella || slot1== pera && slot2== stella && slot3== stella ||
              slot1== banana && slot2== stella && slot3== stella );
              // preparo il quarto tipo di combinazioni (comb4), in cui abbiamo 3 stelle negli slot)
     comb4 = (slot1== stella && slot2== stella && slot3== stella);
     
    }
    
    public void getComb()
    { 
        if (comb1=  true){
        System.out.println(slot1 + " \t "+ slot2 +" \t " + slot3);  
        System.out.println("Complimenti! Hai vinto 10 crediti");
         int credito=+ 15;
        }
        
         else if (comb2 =  true){
        System.out.println(slot1 + " \t "+ slot2 +" \t " + slot3);  
        System.out.println("Complimenti! Hai vinto 5 crediti");
         int credito=+ 5;
        }
         else if (comb3 =  true){
        System.out.println(slot1 + " \t "+ slot2 +" \t " + slot3);  
        System.out.println("Complimenti! Hai vinto 25 crediti");
         int credito=+ 25;
        }
        
         else if (comb2 =  true){
        System.out.println(slot1 + " \t "+ slot2 +" \t " + slot3);  
        System.out.println("Complimenti hai fatto JACKPOT!! Hai vinto 50 crediti");
         int credito=+ 50;
        }
        else if (comb1== false && comb2== false == comb3 == false && comb4== false){
        System.out.println(slot1 + " \t "+ slot2 +" \t " + slot3);  
        System.out.println("Mi dispiace, non hai vinto nulla, ritenta e sarai più fortunato.");
        
        }
    }

}

Sperando in un vostro aiuto, buona serata!

1 Risposte

  • Re: Problema combinazioni casuali slot machine

    Bostikaz ha scritto:


    Buonasera, sto facendo un progetto di un simulatore di slotmachine ma mi sono bloccato su un punto. Ho creato tutte le combinazioni vincenti, ma come posso fare in modo che la macchina "giri" e quindi appaiano combianzioni casuali?
    Innanzitutto il concetto. Non è che sono esperto di slot-machine ... ma per quanto ne so, quelle reali, fisiche, hanno dei dischi con sopra i vari simboli e ne hanno diversi (es. 3) ma tutti uguali che girano casualmente ciascuno diversamente e per conto proprio (ed è questo che dà la casualità delle combinazioni).
    Questo non è molto importante. Ma serve per capire che è sufficiente avere una lista di N simboli e poi estrarre a sorte per es. 3 volte tra questi.

    Ora, in Java per estrarre un numero casuale ci sono principalmente: o Math.random() oppure la classe java.util.Random che è più flessibile. Trovi tonnellate di esempi in rete.

    Tornando al tuo codice, purtroppo è ben poco chiaro e poi quelle "mega" espressioni di AND/OR non si possono proprio vedere .... non va bene. Se questo fosse un esercizio e io fossi il tuo "prof", te lo boccerei subito solo per quello.

    Vedo anche il calcolo dei punteggi in base alle combinazioni. Ma non è chiaro come va fatto (il codice non è leggibile). Precisa se il punteggio è dato solo da una somma di valori per ciascun simbolo o se deriva da logiche più particolari.

    Cerca anche di "modellare" meglio le cose a livello di classi.
Devi accedere o registrarti per scrivere nel forum
1 risposte