C#实现洗牌游戏实例

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

运行结果如下图所示:

对于牌来讲,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("\r\n");

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() + " ");

}

}

}

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

以上是 C#实现洗牌游戏实例 的全部内容, 来源链接: utcz.com/z/357525.html

回到顶部