软件编程
位置:首页>> 软件编程>> C#编程>> C#实现洗牌游戏实例

C#实现洗牌游戏实例

作者:shichen2014  发布时间:2021-07-07 00:45:29 

标签:C#,游戏

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

运行结果如下图所示:

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

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com