zoukankan      html  css  js  c++  java
  • 洗牌算法

    原理:遍历所有牌(52+大小王),每张牌随机一个小于54的数,交换当前遍历的index和随机数对应数组下标的值。random 方法为伪随机,并非等概率随机。
    c#实现:

      private static void Shuffle ()  
        {  
            // 扑克牌初始化   
            List<string> allCard = new List<string>();  
            for (int i = 0; i < 54; i++) {  
                 allCard.Add(i); 
            }  
      
            // 定义随机数  
            Random random = new Random ();  
            // 从数组的最后一个数开始递减  
            for (int i = allCard.Count - 1; i > 0; i--) {  
                // 随机下标  
                int index = random.Next (0, i);  
                // 随机出来的数与最后位置的数交换  
                string temp = allCard [i];  
                allCard [i] = allCard [index];  
                allCard [index] = temp;  
            }  
            foreach (string item in allCard) {  
                Console.WriteLine (item);  
            }    
        }  

    获取牌类型:数组值除以13是否大于4,是则是大小王,否则为普通牌
    c#实现:

      for (int i = 0; i < allCard.Count; i++)
        {
            if (allCard [i] / 13 > 4)
            {
                if (allCard [i] % 4 == 1)
                   {
                        //小王
                   }
                   else
                   {
                        /大王
                   }
            }
            else
            {
                //cardType为0时为黑桃,以次类推,cardNum代表A到K,可以以cardType_cardNum作为牌图片索引。
                int cardType = allCard [i] / 13;
                int cardNum = allCard [i] % 13;
            }
      }
    一直想把之前工作、学习时记录的文档整理到博客上,一方面温故而知新,一方面和大家一起学习 -程序小白
  • 相关阅读:
    CSS3-给网页添加图片
    CSS3-margin,padding,border
    布局左固定右自适应
    Java-基础编程(螺旋矩阵&乘法表)
    Java IO流整理Rick
    Java-Eclipse插件开发学习笔记
    关于《程序语言-平台优越性》一文补充说明
    程序语言-平台优越性
    Understand RNN with TensorFlow in 7 Steps
    pandas mean 返回 inf
  • 原文地址:https://www.cnblogs.com/wang-jin-fu/p/8321154.html
Copyright © 2011-2022 走看看