C#实现洗牌游戏实例
2014-08-20 10:52
1161 查看
棋牌类游戏是目前比较火的游戏之一。今天本文就以实例形式实现洗牌游戏。本文实例所采用的算法是:遍历每个位置上的牌,然后与随机位置上的牌交换。
运行结果如下图所示:
对于牌来讲,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() + " "); } } }
希望本文所述实例对大家的算法学习能有所帮助。
您可能感兴趣的文章:
相关文章推荐
- C#实现的算24点游戏算法实例分析
- C#实现的24点游戏实例详解
- C#实现根据域名查询ip实例(原创)
- 利用C#线程机制实现应用程序的单实例运行
- 利用C#线程机制实现应用程序的单实例运行
- C# 中用Socket实现判断网络是否断开的实例
- 告警程序实例(c#实现)
- 利用C#线程机制实现应用程序的单实例运行
- C#实现单个实例的启动
- C#代码实现,确保windows程序只有一个实例(instance)
- Web C#2.0 DataSet和Reader封装组件实现自动多数据库切换(含组件源码和实例)
- C#实现让程序只能打开一个实例(总结3方法)
- C#实现根据域名查询ip实例
- Web C#2.0 DataSet和Reader封装组件实现自动多数据库切换(含组件源码和实例)
- Web C#2.0 DataSet和Reader封装组件实现自动多数据库切换(含组件源码和实例)
- C# 2005 简短方法实现软件仅打开一个实例的方法
- 如何在无刷新页面的情况下实现客户端回调实例(C#)—MSDN学习笔记
- C#实现游戏 场景的保存和加载(利用序列化)
- 基于.Net平台应用程序唯一运行实例C#代码实现
- 基于.Net平台应用程序唯一运行实例C#代码实现