C#实现洗牌游戏实例
2023-06-13 09:15:43 时间
棋牌类游戏是目前比较火的游戏之一。今天本文就以实例形式实现洗牌游戏。本文实例所采用的算法是:遍历每个位置上的牌,然后与随机位置上的牌交换。
运行结果如下图所示:
对于牌来讲,2个关键的因素是面值和类型(如红桃、梅花等)。
代码如下:
publicclassCard { privatestringmianzhi; privatestringleixin; publicCard(stringm,stringl) { mianzhi=m; leixin=l; } publicoverridestringToString() { returnleixin+""+mianzhi; } }
客户端程序有3个方法,一个是初始化牌的数组,一个是遍历所有牌并显示,还有一个是使用算法洗牌。
具体实现代码如下:
classProgram { privatestaticCard[]allCards=newCard[52]; privatestaticstring[]ms={"1","2","3","4","5","6","7","8","9","10","J","Q","K"}; privatestaticstring[]ls={"红桃","方块","梅花","黑桃"}; staticvoidMain(string[]args) { Init(); ShowAllCards(); Console.WriteLine("\r\n"); Shuffle(); ShowAllCards(); Console.ReadKey(); } privatestaticvoidShuffle() { Randomr=newRandom(); CardtempCard; //依次遍历所有牌与随机位置上的牌交换位置 for(inti=0;i<allCards.Length;i++) { intran=r.Next(52); tempCard=allCards[i]; allCards[i]=allCards[ran]; allCards[ran]=tempCard; } } privatestaticvoidInit() { for(inti=0;i<allCards.Length;i++) { allCards[i]=newCard(ms[i%13],ls[i%4]); } } privatestaticvoidShowAllCards() { foreach(variteminallCards) { Console.Write(item.ToString()+""); } } }
希望本文所述实例对大家的算法学习能有所帮助。
相关文章
- C#使用WinExec调用exe程序[通俗易懂]
- 利用#ZipLib,完成C#下的解压缩「建议收藏」
- C#Stream和byte[]之间的转换
- C#编写方法实例
- C#声明方法实例说明
- c#SQLHelper(forwinForm)实现代码
- C#截图程序类似腾讯QQ截图实现代码
- C#中文简体转繁体实现代码
- C#生成随机字符串的实例
- C#Console类的具体用法
- c#解压文件的实例方法
- 解析C#中委托的同步调用与异步调用(实例详解)
- C#中怎么将一个List转换为只读的
- asp.netC#生成和解析二维码的实例代码
- C#正则表达式分解和转换IP地址实例(C#正则表达式大全c#正则表达式语法)
- c#检测端口是否被占用的简单实例
- c#生成缩略图不失真的方法实例分享
- c#继承与多态使用示例
- c#创建windows服务入门教程实例
- C#实现GZip压缩和解压缩入门实例
- C#的FileSystemWatcher用法实例详解
- C#简单的特殊输出实例
- C#实现的简单验证码识别实例
- C#转换日期类型实例
- 浅谈c#设计模式之单一原则
- C#序列化与反序列化实例
- C#使用ping命令的两个例子
- C#4.0新特性之协变与逆变实例分析
- C#实现改变DataGrid某一行和单元格颜色的方法
- C#实现对图片文件的压缩、裁剪操作实例
- C#控制台程序中处理2个关闭事件的代码实例