Deck

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (328 palavras )
  • Download(s) : 0
  • Publicado : 1 de novembro de 2012
Ler documento completo
Amostra do texto
import java.util.Random;

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

/* ******** atributos daclasse 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
// ascartas restantes estao guardadas nas posicoes seguintes de els
private int indexOut;

/**
* Constroi um baralho com identificador unico e contendo exactamente uma carta
* para cada parnaipe/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 booleanisEmpty(){
return (indexOut == els.length);
}

/**
* Serve para biscar a carta no topo do baralho,
* a qual deixa de pertencer ao baralho
* @requires !isEmpty()
* @return cartabiscada
*/
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...
tracking img