Black Jack - Deck.java
Cerca
 











Deck.java

Caricato da: Paoloricciuti
Scarica il programma completo

  1. package blackjack;
  2.  
  3. /**
  4.  * Un mazzo di carte francesi senza jolly.
  5.  * @author paolo
  6.  */
  7. public class Deck {
  8.  
  9.     /**
  10.      * L'insieme delle carte.
  11.      */
  12.     private Card[] deck = new Card[52];
  13.  
  14.     /**
  15.      * Costruttore di default del mazzo, ritorna un mazzo ordinato.
  16.      */
  17.     public Deck() {
  18.         for (int i = 0; i < 52; i++) {
  19.             String suit;
  20.             int num;
  21.             if (i < 13) {
  22.                 suit = "Picche";
  23.                 num = i + 1;
  24.             } else if (i < 26) {
  25.                 suit = "Fiori";
  26.                 num = i + 1 - 13;
  27.             } else if (i < 39) {
  28.                 suit = "Quadri";
  29.                 num = i + 1 - 26;
  30.             } else {
  31.                 suit = "Cuori";
  32.                 num = i + 1 - 39;
  33.             }
  34.             int valore = num;
  35.             if (num == 1) {
  36.                 valore = 11;
  37.             }
  38.             if (num == 11 || num == 12 || num == 13) {
  39.                 valore = 10;
  40.             }
  41.             this.deck[i] = new Card();
  42.             this.deck[i].setSuit(suit);
  43.             this.deck[i].setValue(valore);
  44.             this.deck[i].setNumber(num + "");
  45.         }
  46.     }
  47.  
  48.     /**
  49.      * Mischia il mazzo.
  50.      */
  51.     public void shuffle() {
  52.         Card[] shuffled = new Card[52];
  53.         boolean[] control = new boolean[52];
  54.         for (int i = 0; i < this.deck.length; i++) {
  55.             int rand = 0;
  56.             do {
  57.                 rand = (int) (Math.random() * this.deck.length);
  58.             } while (control[rand]);
  59.             shuffled[i] = this.deck[rand];
  60.             control[rand] = true;
  61.         }
  62.         for (int i = 0; i < shuffled.length; i++) {
  63.             this.deck[i] = shuffled[i];
  64.         }
  65.     }
  66.  
  67.     /**
  68.      * Ritorna una specifica carta del mazzo.
  69.      * @param pId La posizione al quale prelevare la carta, deve essere minore<br>
  70.      * di 52.
  71.      * @return la Carta scelta.
  72.      */
  73.     public Card getCard(int pId) {
  74.         if (pId < 52) {
  75.             return this.deck[pId];
  76.         }
  77.         return this.deck[0];
  78.     }
  79. }
 

Creative Commons License
Il layout di questo sito è concesso sotto licenza Creative Commons.
Per maggiori informazioni sulle licenze dei contenuti del sito, clicca.