洗牌游戏

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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

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

publicclassCard

{

PRivatestringmianzhi;

privatestringleixin;

publicCard(stringm,stringl)

{

mianzhi = m;

leixin = l;

}

publicoverridestringToString()

{

returnleixin + "" + mianzhi;

}

}

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

classProgram

{

privatestaticCard[] allCards =newCard[52];

privatestaticstring[] ms = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };

privatestaticstring[] ls = { "红桃", "方块", "梅花", "黑桃" };

staticvoidMain(string[] args)

{

Init();

ShowAllCards();

Console.WriteLine("\r\n");

Shuffle();

ShowAllCards();

Console.ReadKey();

}

privatestaticvoidShuffle()

{

Random r =newRandom();

Card tempCard;

//依次遍历所有牌与随机位置上的牌交换位置

for(inti = 0; i < allCards.Length; i++)

{

intran = r.Next(52);

tempCard = allCards[i];

allCards[i] = allCards[ran];

allCards[ran] = tempCard;

}

}

privatestaticvoidInit()

{

for(inti = 0; i < allCards.Length; i++)

{

allCards[i] =newCard(ms[i % 13],ls[i%4]);

}

}

privatestaticvoidShowAllCards()

{

foreach(var iteminallCards)

{

Console.Write(item.ToString() + "");

}

}

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航