在对象数组中我们以对象为元素构成一个扑克牌数组,即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.   

    计算机书里有源程序,好像是<<JAVA how to program>>上下册的中文版(黄皮),一模一样,
      

  2.   

    //我能做的就这些了,希望哪位能帮我修改一下! public class Deck{
    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;
    }