[原]用C#模拟实现扑克牌发牌、排序程序…
(1)52张扑克牌,四种花色(红桃、黑桃、方块和梅花),随机发牌给四个人。
(2)最后将四个人的扑克牌包括花色打印在控制台上。
其中:
花色和点数用枚举类型实现
每张扑克牌用结构实现
**************************************************************************************************
- using System;
- using System.Collections.Generic;
- using System.Collections;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- //用C#模拟实现扑克牌发牌、排序程序。
- //(1)52张扑克牌,四种花色(红桃、黑桃、方块和梅花),随机发牌给四个人。
- //(2)最后将四个人的扑克牌包括花色打印在控制台上。
- //其中:
- // 花色和点数用枚举类型实现
- // 每张扑克牌用结构实现
- //提示:可以用ArrayList初始化52张扑克牌,然后从这个链表中随机取牌发给四个玩家,直到链表为空为止。
- namespace Test5
- {
- enum Color {HongTao=-1,HeiTao=-2,MeiHua=-3,FangPian=-4}//花色
- enum Point {A,two,three,four,five,six,seven,eight,nine,ten,J,Q,K}//点数
- struct Poker
- {//扑克
- private string p1,p2;
- public Poker(string p1, string p2)
- {
- // TODO: Complete member initialization
- this.p1 = p1;
- this.p2 = p2;
- }
- public void Printp()
- {
- Console.Write("({0},{1}) ", this.p1,this.p2);
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Poker po = new Poker();
- ArrayList myPoker=new ArrayList();//实例化一个ArrayList存放所有的扑克牌
- ArrayList Person1 = new ArrayList();
- ArrayList Person2 = new ArrayList();
- ArrayList Person3 = new ArrayList();
- ArrayList Person4 = new ArrayList();
- Random r = new Random();
- for (int i = -4; i <= -1; i++)
- {//外循环初始化扑克的花色
- for (int j = 0; j <= 12; j++)
- {//外层循环初始化扑克的点数
- myPoker.Add(new Poker(
- Enum.GetName(typeof(Color),i),
- Enum.GetName(typeof(Point),j)
- ));
- }
- }//for循环结束,52张扑克牌已经生成
- Console.WriteLine("打印所有的扑克牌:");
- for (int i = 0; i < 52; i++)
- {//打印52张生成的扑克牌
- Poker poAll = (Poker)myPoker[i];
- poAll.Printp();
- }
- //开始发牌,一个人一个人的发,每发一张牌得从myPoker中RemoveAt掉扑克牌,Count数减小;第一个人Add到一张牌。
- for (int i = 0; i < 13; i++)
- {
- int te = r.Next(0,myPoker.Count);
- Person1.Add(myPoker[te]);
- myPoker.RemoveAt(te);
- }
- for (int i = 0; i < 13; i++)
- {
- int te = r.Next(0, myPoker.Count);
- Person2.Add(myPoker[te]);
- myPoker.RemoveAt(te);
- }
- for (int i = 0; i < 13; i++)
- {
- int te = r.Next(0, myPoker.Count);
- Person3.Add(myPoker[te]);
- myPoker.RemoveAt(te);
- }
- for (int i = 0; i < 13; i++)
- {
- int te = r.Next(0, myPoker.Count);
- Person4.Add(myPoker[te]);
- myPoker.RemoveAt(te);
- }
- Console.WriteLine();
- Console.WriteLine("打印第一个人的扑克牌:");
- for (int i = 0; i < 13;i++ )
- {
- Poker po1 = (Poker)Person1[i];
- po1.Printp();
- }
- Console.WriteLine();
- Console.WriteLine("打印第二个人的扑克牌:");
- for (int i = 0; i < 13; i++)
- {
- Poker po2 = (Poker)Person2[i];
- po2.Printp();
- }
- Console.WriteLine();
- Console.WriteLine("打印第三个人的扑克牌:");
- for (int i = 0; i < 13; i++)
- {
- Poker po3 = (Poker)Person3[i];
- po3.Printp();
- }
- Console.WriteLine();
- Console.WriteLine("打印第四个人的扑克牌:");
- for (int i = 0; i < 13; i++)
- {
- Poker po4 = (Poker)Person4[i];
- po4.Printp();
- }
- Console.WriteLine();
- }
- }
- }
[原]用C#模拟实现扑克牌发牌、排序程序…的更多相关文章
- [原]用C#模拟实现扑克牌发牌、排序程序。
(1)52张扑克牌,四种花色(红桃.黑桃.方块和梅花),随机发牌给四个人. (2)最后将四个人的扑克牌包括花色打印在控制台上. 其中: 花色和点数用枚举类型实现 每张扑克牌用结构实 ...
- C# -- 模拟扑克牌发牌
C# -- 模拟扑克牌发牌 1. User 类: 玩家 public class User { private List<PaperCard> listCard = new List&l ...
- C算法编程题(一)扑克牌发牌
前言 上周写<我的编程开始(C)>这篇文章的时候,说过有时间的话会写些算法编程的题目,可能是这两天周末过的太舒适了,忘记写了.下班了,还没回去,闲来无事就写下吧. 因为写C++的编程题和其 ...
- Java练习——扑克牌发牌器
Java练习——扑克牌发牌器声明:学习自其他博主,感谢分享,这里自己也写了一下.实现思路 - 构建一张扑克牌 - 构建一套扑克牌 - 测试 构建一张扑克牌 /** * @author 冬冬 * 定义 ...
- Python面向对象编程扑克牌发牌程序,另含大量Python代码!
1. 题目 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不 ...
- Java 扑克牌发牌
今天看到这个算法题,http://www.cnblogs.com/xishuai/p/3392981.html ,忍不住自己用Java做了一个. 初始化很重要,所有的52张牌按顺序放入到容器里边,标志 ...
- HashTable的使用,扑克牌发牌游戏
l 场景 主要实现以下功能: 1. 首先给扑克牌中每张牌设定一个编号,下面算法实现的编号规则如下: 红桃按照从小到大依次为:1-13 方块按照从小到大依次为:14-26 黑桃按 ...
- sdut 2162:The Android University ACM Team Selection Contest(第二届山东省省赛原题,模拟题)
The Android University ACM Team Selection Contest Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里 ...
- (待续)C#语言中的动态数组(ArrayList)模拟常用页面置换算法(FIFO、LRU、Optimal)
目录 00 简介 01 算法概述 02 公用方法与变量解释 03 先进先出置换算法(FIFO) 04 最近最久未使用(LRU)算法 05 最佳置换算法(OPT) 00 简介 页面置换算法主要是记录内存 ...
随机推荐
- 通过IIS发布站点和VS2012自带发布网站
vs2012通过IIS发布站点 http://jingyan.baidu.com/article/0964eca2d7beeb8285f536bd.html 用VS2012自带发布网站 http:// ...
- MathJax测试
\begin{array}{cc} a & b \\ c & d \end{array} \begin{equation} \int_0^\infty \frac{x^3}{e^x-1 ...
- SATA1.0,2.0,3.0区别
外观没区别,接口都一样,线也一样,就是传输速率不一样,控制芯片不一样SATA1.0理论传输速度为1.5Gbit/s SATA2.0理论传输速度为3Gbit/sSATA2.0理论传输速度为6Gbit/s ...
- 【转】notepad++设置字体和字体大小
原文网址:http://www.aichengxu.com/view/604 今天很多朋友问我怎么设置notepad++的代码字体和代码字体的大小,习惯了editplus的朋友可能会在notepad+ ...
- poj 3498 March of the Penguins(最大流+拆点)
题目大意:在南极生活着一些企鹅,这些企鹅站在一些冰块上,现在要让这些企鹅都跳到同一个冰块上.但是企鹅有最大的跳跃距离,每只企鹅从冰块上跳走时会给冰块造成损害,因此企鹅跳离每个冰块都有次数限制.找出企鹅 ...
- UITableView系列(1)---Apple缓存池机制
一.概述 关于UITableView的基本使用, 其实十分简单.但是做App最重要的之一就是细致,技术方面要做到细致, 必须深入了解底层, 才能做出优化让程序跑得更快.那么这一系列文章从我实际项目中获 ...
- Android之字符串的拆分-split
字符串的拆分可以利用android的 split 来简单实现 具体看如下代码: String s3 = "Real-How-To"; String [] temp = null; ...
- array模块
array模块定义了一种序列数据结构,看起来和list很相似,但是所有成员必须是相同基本类型. 2.1 array-固定类型数据序列 array作用是高效管理固定类型数值数据的序列. 2.2.1 初始 ...
- jquery更新后怎样在一个站点中使用两个版本号的jQuery
公司眼下的项目中的右側导航菜单用到了bootstrap(v3.2.0)的affix.js(Affix插件)与scrospy.js(滚动监听)插件, 须要用到版本号>= 1.9.0的jquery, ...
- Rss 的作用 及使用方法
也可以参考http://jingyan.baidu.com/article/e73e26c0c73e1f24adb6a70f.html 什么是RSS RSS是站点用来和其他站点之间共享内容的一种简易方 ...
