📄 deck.java
字号:
import java.util.*;
// 拥有52张牌的一副牌
class Deck
{
// 把本幅牌所有的牌扔掉
void burnIt()
{
while(actualDeck.size()!=0)
actualDeck.removeElementAt(0);
}
// 把numDecks套牌加入一幅牌中(一套牌52张),不进行洗牌
void addDeck( int numDecks )
{
final char[] cardValues =
{'A','2','3','4','5','6','7','8','9','T','J','Q','K'};
final Suit[] suitValues =
{Suit.HEART,Suit.DIAMOND,Suit.SPADE,Suit.CLUB};
for( int count = 0; count < numDecks; count++)
for(int i = 0; i < suitValues.length; i++)
for(int j = 0; j < cardValues.length; j++)
{ Card card = new Card();
card.setSuit(suitValues[i]);
card.setType(cardValues[j]);
actualDeck.addElement(card);
} }
//洗牌
void shuffle()
{
Vector tmp = new Vector();
while(actualDeck.size()!=0) {
tmp.addElement(actualDeck.elementAt(0)); actualDeck.removeElementAt(0);
} while(tmp.size()!=0)
{
Random rnd = new Random(); int i = Math.abs(rnd.nextInt()) % tmp.size(); actualDeck.addElement(tmp.elementAt(i)); tmp.removeElementAt(i);
} }
// 从本幅牌的最上面抽一张牌
Card getCard()
{
Card card = (Card)actualDeck.elementAt(0); actualDeck.removeElementAt(0);
return card;
}
//本副牌还剩几张?
int remainingCards()
{
return actualDeck.size();
}
public String toString() { String s; s = "Card nums="+remainingCards() + " " + actualDeck; return s; } Vector getCards() { return actualDeck; }
// We will use a deque to store the set of cards
private Vector actualDeck = new Vector();
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -