zoukankan      html  css  js  c++  java
  • 洗牌游戏

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

    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("
    ");
    
                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() + " ");
    
                }
    
            }
    
        }
    
  • 相关阅读:
    iOS应用崩溃日志分析
    使用Crashlytics来保存应用崩溃信息
    Mac和iOS开发资源汇总
    简单配置PonyDebugger
    程序员的工作不能用“生产效率”这个词来衡量
    使用Reveal 调试iOS应用程序
    MySQL 笔记
    flex弹性布局
    回调函数
    微信小程序开发
  • 原文地址:https://www.cnblogs.com/darrenji/p/3869983.html
Copyright © 2011-2022 走看看