当前位置:  编程技术>.net/c#/asp.net

C#实现洗牌游戏实例

    来源: 互联网  发布时间:2014-11-02

    本文导语:  棋牌类游戏是目前比较火的游戏之一。今天本文就以实例形式实现洗牌游戏。本文实例所采用的算法是:遍历每个位置上的牌,然后与随机位置上的牌交换。 运行结果如下图所示: 对于牌来讲,2个关键的因素是面值和类型(...

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

运行结果如下图所示:

对于牌来讲,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("rn");
    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#通过委托delegate与Dictionary实现action选择器代码举例
  • C#实现获取枚举中元素个数的方法
  • C#实现自定义双击事件
  • C#键盘输入回车键实现点击按钮效果的方法
  • C#实现获取一年中是第几个星期的方法
  • C#实现Datatable排序的方法
  • C#实现装箱与拆箱操作简单实例
  • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • C#下实现创建和删除目录的实例代码
  • 使用C#实现在屏幕上画图效果的代码实例
  • C#实现过滤html标签并保留a标签的方法
  • c#实现TextBox只允许输入数字
  • C# Winform 整个窗口拖动的实现代码
  • c# ListView实现双击Item事件的变通方法
  • C#实现随鼠标移动窗体实例
  • C#中的FileUpload 选择后的预览效果具体实现
  • C# 窗体隐藏及任务管理器中禁止关闭的实现代码
  • C#的锯齿数组以及C++实现代码
  • C#格式化文件大小的实现代码
  • C#怎样才能实现窗体最小化到托盘呢?
  • C# char类型字符转换大小写的实现代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问在一个servlet里取得一个用singleton模式实现的类实例,那么这个类实例的生命周期是怎样的?
  • 高分求c 实现线程池的一个实例
  • python实现的重启关机程序实例
  • 怎样检测一个对象的实例的存在,并且删除它?程序是怎样实现的?谢谢!
  • python调用短信猫控件实现发短信功能实例
  • Java调用DOS实现定时关机的实例
  • C语言实现杨辉三角实例
  • 那位牛人可以说说实例池的原理和实现??
  • C语言实现堆排序的简单实例
  • java实现大数加法(BigDecimal)的实例代码
  • 实现DataGridView控件中CheckBox列的使用实例
  • ThinkPHP实现批量删除数据的代码实例
  • jQuery实现回车键(Enter)切换文本框焦点的代码实例
  • jquery实现弹出div,始终显示在屏幕正中间的简单实例
  • ******"Servlet根据JSP视图的需求生成JavaBeans的实例并输出给JSP环境"如何实现上面这句话的效果??*******
  • VC++简单实现关机、重启计算机实例代码
  • haskell实现多线程服务器实例代码
  • Java通过接口实现匿名类的实例代码
  • wince程序防止创建多个实例实现互斥作用
  • Python实现冒泡,插入,选择排序简单实例
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • socket实现多文件并发传输,求助多线程实现问题?
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • interface 到底有什么用???实现接口,怎么实现??
  • 通过javascript库JQuery实现页面跳转功能代码
  • 怎么用Jsp实现在页面实现树型结构?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • php实现socket实现客户端和服务端数据通信源代码
  • 网站重定向用C语言实现iptables,ACL实现
  • flash AS3反射实现(describeType和getDefinitionByName)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3