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拉到迴圈開始前,繼續思考元素可能重複的問題,最後想不出解。
於是換個想法:先把所有的牌都「依序」製造出來,再隨機排列。
沒有留言:
張貼留言