·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 洗牌游戏

洗牌游戏

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

实现洗牌游戏的一种算法是:遍历每个位置上的牌,然后与随机位置上的牌交换。

12

 

对于牌来讲,2个关键的因素是面值和类型(红桃、梅花等)。

    public class Card
    {
        PRivate string mianzhi;
        private string leixin;
        public Card(string m, string l)
        {
            mianzhi = m;
            leixin = l;
        }
        public override string ToString()
        {
            return leixin + " " + mianzhi;
        }
    }

 

客户端程序有3个方法,一个是初始化牌的数组,一个是遍历所有牌并显示,还有一个是使用算法洗牌。

    class Program
    {
        private static Card[] allCards = new Card[52];
        private static string[] ms = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
        private  static string[] ls = { "红桃", "方块", "梅花", "黑桃" };
        static void Main(string[] args)
        {
            Init();
            ShowAllCards();
            Console.WriteLine("\r\n");
            Shuffle();
            ShowAllCards();
            Console.ReadKey();
        }
        private static void Shuffle()
        {
            Random r = new Random();
            Card tempCard;
            //依次遍历所有牌与随机位置上的牌交换位置
            for (int i = 0; i < allCards.Length; i++)
            {
                int ran = r.Next(52);
                tempCard = allCards[i];
                allCards[i] = allCards[ran];
                allCards[ran] = tempCard;
            }
        }
        private static void Init()
        {
            for (int i = 0; i < allCards.Length; i++)
            {
                allCards[i] = new Card(ms[i % 13],ls[i%4]);
            }
        }
        private static void ShowAllCards()
        {
            foreach (var item in allCards)
            {
                Console.Write(item.ToString() + " ");
            }
        }
    }