首页 > 编程 > C# > 正文

C#实现洗牌游戏实例

2020-01-24 02:30:16
字体:
来源:转载
供稿:网友

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

运行结果如下图所示:

对于牌来讲,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() + " ");    }  }}

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表