-
C#教程之C# -- 模拟扑克牌发牌
本站最新发布 C#从入门到精通
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
C# -- 模拟扑克牌发牌
1. User 类: 玩家
public class User { private List<PaperCard> listCard = new List<PaperCard>(); public string Name { get; set; } public User(string strName) { this.Name = strName; } public void Add(PaperCard p) { listCard.Add(p); } public void Reset() { listCard.Clear(); } public void Introduce() { string strCards = ""; for (int i = 0; i < listCard.Count; i++) { if (i == 0) { strCards += listCard[i].Name; } else { strCards += ", " + listCard[i].Name; } } Console.WriteLine("\r\n--------------------------------------------"); Console.Write("我是{0},", Name); Console.Write("我手中的扑克牌有{0}张:\r\n{1}\r\n", listCard.Count,strCards); } }
2. PaperCard类:纸牌
public class PaperCard { public string Type { get; set; } public string Number { get; set; } public PaperCard(string strType, string strNumber) { this.Type = strType; this.Number = strNumber; } public string Name { get { return string.Format("{0}{1}", this.Type, this.Number); } private set { } } }
3. 模拟发牌过程
public void TestPlay() { //产生扑克牌 Console.WriteLine("正在生成扑克牌..."); List<PaperCard> myCards = new List<PaperCard>(); string[] strType = { "红桃", "黑桃", "梅花", "方块" }; string[] strNumber = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" }; PaperCard[] OtherCard = { new PaperCard("大王", ""), new PaperCard("小王", "") }; for (int i = 0; i < strNumber.Length; i++) { for (int j = 0; j < strType.Length; j++) { PaperCard p = new PaperCard(strType[j], strNumber[i]); myCards.Add(p); } } for (int j = 0; j < OtherCard.Length; j++) { myCards.Add(OtherCard[j]); } //洗牌 Console.WriteLine("正在洗牌..."); Stack<PaperCard> stackCard = new Stack<PaperCard>(); Random r = new Random(); while (myCards.Count>0) { int iIndex = r.Next(0, myCards.Count); stackCard.Push(myCards[iIndex]); myCards.RemoveAt(iIndex); } //发牌 Console.WriteLine("开始发牌..."); List<User> listUser = new List<User>() { new User("大师兄"), new User("二师兄"), new User("三师弟") }; while (stackCard.Count > 0) { for (int s = 0; s < listUser.Count; s++) { listUser[s].Add(stackCard.Pop()); } } Console.WriteLine("发牌完成!"); //看牌 foreach (var item in listUser) { item.Introduce(); } }
测试:
栏目列表
最新更新
类的实例化过程
C# -- 模拟扑克牌发牌
c# 邮件发送
并行编程和任务(一)
占位符使用(竖式计算)
c# 获取sqlserver 运行脚本的print消息的方法
asp.net MVC通用权限管理系统-响应式布局
线程基础
.net core web api 添加对session跨域实现
C# 常用工具方法之DataTable(一)
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能
将Session值储存于SQL Server中
使用SQL Server数据库嵌套子查询的方法
SQL概述