最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)洗牌游戲?qū)嵗?/h1>
 更新時(shí)間:2014年08月20日 10:52:24   投稿:shichen2014  
這篇文章主要介紹了C#實(shí)現(xiàn)洗牌游戲?qū)嵗?對(duì)于數(shù)據(jù)結(jié)構(gòu)與算法的學(xué)習(xí)有不錯(cuò)的借鑒參考作用,需要的朋友可以參考下

棋牌類(lèi)游戲是目前比較火的游戲之一。今天本文就以實(shí)例形式實(shí)現(xiàn)洗牌游戲。本文實(shí)例所采用的算法是:遍歷每個(gè)位置上的牌,然后與隨機(jī)位置上的牌交換。

運(yùn)行結(jié)果如下圖所示:

對(duì)于牌來(lái)講,2個(gè)關(guān)鍵的因素是面值和類(lèi)型(如紅桃、梅花等)。

代碼如下:

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個(gè)方法,一個(gè)是初始化牌的數(shù)組,一個(gè)是遍歷所有牌并顯示,還有一個(gè)是使用算法洗牌。

具體實(shí)現(xiàn)代碼如下:

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;
    //依次遍歷所有牌與隨機(jī)位置上的牌交換位置
    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() + " ");
    }
  }
}

希望本文所述實(shí)例對(duì)大家的算法學(xué)習(xí)能有所幫助。

相關(guān)文章

最新評(píng)論

古田县| 万安县| 镇安县| 淳化县| 陆丰市| 霍林郭勒市| 鄂尔多斯市| 普兰店市| 红原县| 泌阳县| 铜梁县| 安多县| 太原市| 依兰县| 桃源县| 钦州市| 吉首市| 习水县| 来宾市| 石阡县| 祁阳县| 南陵县| 平邑县| 木兰县| 灵武市| 天峻县| 桂林市| 嘉鱼县| 房产| 广汉市| 金坛市| 镇安县| 广德县| 洛川县| 潜江市| 南皮县| 米易县| 靖州| 清远市| 新和县| 乌兰浩特市|