C# 洗牌算法
2016-02-19 12:43
525 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 洗扑克牌 { class Program { static void Main(string[] args) { string[] cardColor = { "黑桃", "方块", "梅花", "红桃" }; Card[] cardList = new Card[52]; int colorIndex = 0; int tempValue = 0; for (int i = 0; i < cardList.Length; i++) { if (i % 13 == 0 && i != 0) { colorIndex++; } Char a = 'A'; tempValue = i % 13; switch (tempValue) { case 0: a = 'A'; break; case 9: a = '0'; break; case 10: a = 'J'; break; case 11: a = 'Q'; break; case 12: a = 'K'; break; default: a = (Char)(tempValue + (int)'1'); break; } cardList[i] = new Card() { value = a, color = cardColor[colorIndex] }; } Console.WriteLine("洗牌之前:"); ShowCard(cardList); ShuffleCard(cardList); Console.WriteLine("\n\n洗牌之后:"); ShowCard(cardList); Console.ReadLine(); } static void ShuffleCard(Card[] cardList) { Random random = new Random(); int tempIndex = 0; Card temp = null; for (int i = 0; i < 52; i++) { tempIndex = random.Next(52); temp = cardList[tempIndex]; cardList[tempIndex] = cardList[i]; cardList[i] = temp; } } static void ShowCard(Card [] cardList) { for (int i = 0; i < cardList.Length; i++) { if (i % 13 == 0 && i != 0) { Console.WriteLine("\n"); } Console.Write(cardList[i].color + "" + cardList[i].value + " "); } } } public class Card { public char value; public string color; } }
![](https://images2015.cnblogs.com/blog/600298/201602/600298-20160219124254363-1521916540.png)
相关文章推荐
- C#资源释放方法实例分析
- C# 中DateTime的各种使用
- C#获取泛型集合中元素的类型
- 远程桌面,RDP文件密码加密、解密算法(C#)
- csharp:正则表达式采集网页数据
- c# out ref
- C#泛型集合之Dictionary使用技巧
- c#中的数据类型简介(string)
- 解析C#设计模式编程中外观模式Facade Pattern的应用
- byte数组与Image的相互转换
- C#委托&事件
- c# word 操作
- C#如何释放已经加载的图片
- 使用C#配合ArcGIS Engine进行地理信息系统开发
- 浅谈基类与子类之间继承关系
- C#多线程简单例子讲解
- C#中的线程(一)入门
- c#实现每隔一段时间执行代码(多线程)
- 关于C#应用第三方控件dll的使用方法及常见问题
- SAP接口编程-RFC系列11:C#语言调用RFC