Deck

328 palavras 2 páginas
import java.util.Random;

/** * Classe cujos objectos representam um baralho de onde * se podem ir retirando cartas (pelo topo) * * */ public class Deck {

/* ******** atributos da classe Deck *********** */ // o identificador do proximo baralho a ser construido private static int nextId = 1; /* ******** atributos de cada baralho (objectos com tipo Deck) ********** */ // identificador unico do baralho private int id; // guarda as cartas correntemente no baralho private Card[] els; // indice de els onde esta a carta do topo do baralho // as cartas restantes estao guardadas nas posicoes seguintes de els private int indexOut;

/** * Constroi um baralho com identificador unico e contendo exactamente uma carta * para cada par naipe/face */ public Deck(){ id = nextId; nextId++; els = new Card[Suit.values().length * Rank.values().length]; int i=0; for (Suit s : Suit.values()){ for(Rank r: Rank.values()){ els[i] = new Card(r,s); i++; } } indexOut = 0; }

/** * Determina se o baralho ainda tem cartas * @return se o baralho ainda tem alguma carta */ public boolean isEmpty(){ return (indexOut == els.length); } /** * Serve para biscar a carta no topo do baralho, * a qual deixa de pertencer ao baralho * @requires !isEmpty() * @return carta biscada */ public Card takeNext(){ Card result = els[indexOut]; els[indexOut] = null; indexOut++; return result; } /** * Determina quantas cartas ainda existem no baralho * @return quantas cartas ainda ha no baralho */ public int howManyCards(){ return (els.length - indexOut); } /** * Baralha as cartas de forma a ficarem distribuidas aleatoriamente */ public void shufle(){ Random generator = new Random(); for (int i = indexOut; i < els.length; i++) { int r = i + (int) (generator.nextInt(els.length-i)); //troca as cartas

Relacionados

  • decks
    603 palavras | 3 páginas
  • deck
    600 palavras | 3 páginas
  • steel deck
    2419 palavras | 10 páginas
  • STELL DECK
    1281 palavras | 6 páginas
  • Steel Deck
    3985 palavras | 16 páginas
  • Steel deck
    948 palavras | 4 páginas
  • Steel Deck
    1129 palavras | 5 páginas
  • Steel Deck
    288 palavras | 2 páginas
  • Steel Deck
    12223 palavras | 49 páginas
  • Steel deck
    3267 palavras | 14 páginas