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() + " ");
    
                }
    
            }
    
        }
    
  • 相关阅读:
    Golang基础笔记
    PHP面试题
    PHP操作文件常用函数
    转:C#委托与事件
    转:Tkinter教程之Text(2)篇
    Tkinter教程之Text篇(1)
    转:Python 从FTP 下载数据的例子
    转:Python模块学习 ---- httplib HTTP协议客户端实现
    转:Python yield 使用浅析
    有用的网址地址
  • 原文地址:https://www.cnblogs.com/darrenji/p/3869983.html
Copyright © 2011-2022 走看看