洗牌游戏

2018-06-23 22:12:41来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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

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() + " ");
            }
        }
    }

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:asp.net 创建文字特效

下一篇:递归实现阶乘