zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#实现洗牌游戏实例

c#实例游戏 实现 洗牌
2023-06-13 09:15:43 时间

棋牌类游戏是目前比较火的游戏之一。今天本文就以实例形式实现洗牌游戏。本文实例所采用的算法是:遍历每个位置上的牌,然后与随机位置上的牌交换。

运行结果如下图所示:

对于牌来讲,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()
{
Randomr=newRandom();
CardtempCard;
//依次遍历所有牌与随机位置上的牌交换位置
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(variteminallCards)
{
Console.Write(item.ToString()+"");
}
}
}

希望本文所述实例对大家的算法学习能有所帮助。