当前位置:
首页 > temp > 简明python教程 >
-
C# -- 模拟扑克牌发牌
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(); } }
测试:
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数