想法 :
1. 先創造一個容器(裝52張牌)
2. 利用Random 亂數出數字(要少於52)
3. 利用迴圈尋覽每一張牌。
4. 將產生的亂數與當前的 i 值數字對調,來達到隨機換牌的效果
原來這也有參考 : http://openhome.cc/Gossip/AlgorithmGossip/ShuffleCard.htm
- class Program
- {
- static void Main(string[] args)
- {
- Cards card = new Cards();
- //洗牌
- card.shuffle();
- //顯示牌
- card.showcard();
- }
- }
- public class Cards
- {
- public List<int> pack { get; set; }
- public Cards(){
- pack = new List<int>(52);
- for (int i = 1; i <= 52; i++)
- {
- pack.Add(i);
- }
- }
//顯示牌
- public void showcard(){
- int temp = 1;
- foreach (var item in this.pack)
- {
- Console.Write(item.ToString() + " ");
- if (temp % 13 == 0)
- {
- Console.WriteLine();
- }
- temp++;
- }
- }
- //洗牌
- public void shuffle()
- {
- Random rnd = new Random();
- for (int i = 0; i < pack.Count; i++)
- {
- int swap = rnd.Next(51) + 1;
- int temp = pack[i];
- pack[temp] = pack[swap];
- pack[swap] = temp;
- }
- }
- }
沒有留言:
張貼留言