2017年5月17日 星期三

[JAVA]第4章 認識物件:課後練習(二)

2.撰寫:簡單的樸克牌洗牌程式

失敗作品

    public static void main(String[] args) {
        String[] type = {"桃", "心", "磚", "梅"};
        String[] number
                = {"A", "2", "3", "4", "5", "6", "7",
                    "8", "9", "10", "J", "Q", "K"};
        
        for (int j = 0; j < 52; j++) {
            int t = (int) (Math.random() * 4);  //隨機產生0~3索引值
            int n = (int) (Math.random() * 13); //隨機產生0~12索引值
            String[] card = new String[52];
            card[j] = type[t] + " " + number[n];
              //若有元素重複則重新產生,若使用break會少一張牌
//            if (j + 1 < 52 && card[j + 1].equals(card[j])) {
//                break;
//            }
            System.out.print(card[j] + " ");
        }
        System.out.println();
    }


}

後來想到new在迴圈裡可能會造成程式效率差,
把new拉到迴圈開始前,繼續思考元素可能重複的問題,最後想不出解。
於是換個想法:先把所有的牌都「依序」製造出來,再隨機排列。

沒有留言:

張貼留言