先從什麼是shuffle algorithm談起。
1. 使用迴圈去瀏覽卡組中的每一張牌。
2. 我們把目前位置的陣列和隨機選擇的位置做交換。
3. 直到全部交換完畢,結束演算法。
public class Shuffle {
public static void main(String[] args)
{
String [] A = {"A", "B", "C", "D", "E"};
for (int i = 0; i < A.length; ++i)
{
// Choose a random integer j.
int j = (int) (Math.random() * A.length);
//Swap A[i] and A[j].
String tmp = A[i];
A[i] = A[j];
A[j] = tmp;
}
for(int i = 0; i < A.length; i++)
{
System.out.println("A[" + i + "] = " + A[i]);
}
}
}
程式碼的執行結果 :
A[0] = B
A[1] = E
A[2] = D
A[3] = C
A[4] = A
可以看到,我們順利的完成了隨機的交換,接下來讓我們擴充程式碼。
1. 我們把52張牌簡化成4組,每組有13張。
String[ ] suit = { "Club", "Diamond", "Heart", "Spade" };
String[ ] rank = {"3", "4", "5", "6", "7", "8", "9","10", "J", "Q", "K", "A", "2"};
2. 我們創造一個供玩家使用的牌桌
int[] deck = new int[52];
3. 使用 Shuffle algorithm
明天再繼續打,現在很晚了,先睡覺
這篇可能很久才會打完,特別是GUI的部分,要寫swing不知道怎麼打文章...我該預設讀者已經會了嗎 ( ?