在对象数组中我们以对象为元素构成一个扑克牌数组,即Card[] deck。(注:定义一张扑克牌的源文件为Card.java)
1) 现在要求定义一副纸牌类Deck,成员变量为扑克牌数组cards;
2) 构建器Deck()功能为顺序生成一副纸牌,即梅花A到K、方块A到K、红桃A到K、黑桃A到K;
3) 编写printDeck方法打印一副扑克牌;
4) 编写findCard方法,它的参数为一副扑克牌和一张牌,返回值为这张牌的下标值,查找算法采用顺序查找;
5) 编写swapCards方法,它的参数为一副扑克牌,以及两张扑克牌,然后把指定位置的两张扑克牌交换位置;
6) 编写shuffleDeck方法,对一副扑克牌洗牌,算法伪代码如下:
for (int i = 0; i < deck.cards.length; i++){
在i和deck.cards.length之间随机取值;
下标为i的扑克牌和下标为随机数的扑克牌交换位置;
}
1) 现在要求定义一副纸牌类Deck,成员变量为扑克牌数组cards;
2) 构建器Deck()功能为顺序生成一副纸牌,即梅花A到K、方块A到K、红桃A到K、黑桃A到K;
3) 编写printDeck方法打印一副扑克牌;
4) 编写findCard方法,它的参数为一副扑克牌和一张牌,返回值为这张牌的下标值,查找算法采用顺序查找;
5) 编写swapCards方法,它的参数为一副扑克牌,以及两张扑克牌,然后把指定位置的两张扑克牌交换位置;
6) 编写shuffleDeck方法,对一副扑克牌洗牌,算法伪代码如下:
for (int i = 0; i < deck.cards.length; i++){
在i和deck.cards.length之间随机取值;
下标为i的扑克牌和下标为随机数的扑克牌交换位置;
}
int suit;
int rank;
Deck(){
this.suit = 0;
this.rank = 0;
} Deck(int suit, int rank){
this.suit = suit;
this.rank = rank;
}
public static void main(String[] args){
Deck[] deck = new Deck[52];
Deck[] deck1 = buildDeck();
System.out.println(deck1);
System.out.println("");
printDeck(deck1);
}
//打印一副扑克牌
public static void printDeck(Deck c){
String[] suits = {"梅 花","方 块","红 桃",
"黑 桃"};
String[] ranks = {"narf", "Ace", "2", "3", "4" ,
"5", "6" , "7" , "8" ,
"9" , "10" , "Jack" ,
"Queen" , "King" };
System.out.println(" "+suits[c.suit]+" "+ranks[c.rank]);
}
public static void printDeck(Deck[] deck){
for(int i = 0; i < deck.length; i++)
printDeck(deck[i]);
}
//生成一副新的扑克牌
public static Deck[] buildDeck(){
Deck[] deck = new Deck[52];
int index = 0;
for (int suit = 0; suit <= 3; suit++){
for (int rank = 1; rank <=13; rank++){
deck[index] = new Deck(suit, rank);
index++;
}
}
return deck;
}