扑克牌花色大小的花色和数字是用什么制成的?

&&&&&&&&&&&
前阵子去某家公司笔试,发现有一道扑克牌排序的算法题,题目的大致意思是从一个给定的扑克牌文件读取内容,里面的内容是每行一个扑克牌牌面值,如&J,&Q,&A,&10等,要求对该文本进行两种排序,一种是按Suit,另一种是Rank;如果原文本值为:&2&J&10&3&7&9&9&6&Q&4&6&A则Suit输出方式为:&Q &J &9 &3 &2 &10 &A &9 &6 &7 &6 &4 (此处suit的大小按照:&,&,&,&)而Rank输出则为: &A &Q &J &10 &9 &9 &7 &6 &6 &4 &3 &2&&&
具体算法如下:首先定义一个公共类Common,用于读取和写入文件:&&
using System.Collections.G
using System.L
using System.T
using System.IO;
namespace Test.Porker
public class Common
public static List&string& ReadFile(string srcFileName)
var list = new List&string&();
using (var sr = new StreamReader(srcFileName, Encoding.UTF8))
string s = "";
while ((s = sr.ReadLine()) != null)
list.Add(s);
public static void WriteFile(string desFileName,List&string& list)
using (var sw = new StreamWriter(desFileName, true, Encoding.UTF8))
foreach (var item in list)
sw.WriteLine(item);
public static void GenerateRandPoker()
List&string& list = new List&string&();
for (int i = 2; i &= 14; i++)
if (i &= 10)
list.Add("&" + i);
list.Add("&" + i);
list.Add("&" + i);
list.Add("&" + i);
else if (i == 11)
list.Add("&J");
list.Add("&J");
list.Add("&J");
list.Add("&J");
else if (i == 12)
list.Add("&Q");
list.Add("&Q");
list.Add("&Q");
list.Add("&Q");
else if (i == 13)
list.Add("&K");
list.Add("&K");
list.Add("&K");
list.Add("&K");
else if (i == 14)
list.Add("&A");
list.Add("&A");
list.Add("&A");
list.Add("&A");
Random r = new Random();
for (int i = 0; i & 100; i++)
int n = r.Next(0, 51);
int m = r.Next(0, 51);
if (n != m)
string tmp = list[m];
list[m] = list[n];
WriteFile(@"d:\CardSuit.txt", list);
然后添加两个类,分别为SuitSort:
using System.Collections.G
using System.L
using System.T
namespace Test.Porker
public class SuitSort
public List&string& SuitList { get; set; }
public SuitSort(List&string& list)
SuitList =
public void SortSuitList()
SuitList.Sort(SuitComparer);
private static int SuitComparer(string porkerA,string porkerB)
var a = GetPorkerNumber(porkerA);
var b = GetPorkerNumber(porkerB);
return a-b;
private static int GetPorkerNumber(string porker)
if (string.IsNullOrEmpty(porker))
var suitValue = 0;
char c = porker[0];
//此处排序首先考虑的是花色,于是先把花色乘以一个常数区分开来
switch (c)
suitValue = 100;
suitValue = 200;
suitValue = 300;
suitValue = 400;
var numStr = porker.Substring(1);
var number = 0;
//给几个特殊牌赋予一个整数值
switch (numStr)
number = 14;
number = 13;
number = 12;
number = 11;
number =Convert.ToInt32(numStr);
//保证了每个花色都不是在一个数字区间段
number = (15 - number) + suitV
RankSort:
using System.Collections.G
using System.L
using System.T
namespace Test.Porker
public class RankSort
public List&string& RankList { get; set; }
public RankSort(List&string& list)
RankList =
public void SortRankList()
RankList.Sort(SuitComparer);
private static int SuitComparer(string porkerA, string porkerB)
var a = GetPorkerNumber(porkerA);
var b = GetPorkerNumber(porkerB);
return a -
private static int GetPorkerNumber(string porker)
if (string.IsNullOrEmpty(porker))
var numStr = porker.Substring(1);
var number = 0;
//给几个特殊牌赋予一个整数值
switch (numStr)
number = 14;
number = 13;
number = 12;
number = 11;
number = Convert.ToInt32(numStr);
//利用15-牌面数值,已达到大的排前面,小的排后面
//此处为了区别同一数字的不同花色,在此乘以了一个常数100()一副扑克的牌数总数即可
number = (15 - number) * 100;
//不同的花色再加上一个偏移量,此处根据需要设置花色的大小,我这里的suit排序顺序为:黑、红、方、梅
char c = porker[0];
switch (c)
number += 1;
number += 2;
number += 3;
number += 4;
这样对于扑克排序的算法基本完成,下面即是验证;首先调用公共类里面的GenerateRandPoker随机生成一副乱序扑克,然后实例化两个类对象进行排序并输出:
static void Main(string[] args)
Common.GenerateRandPoker();
var fileName = @"D:\CardSuit.txt";
SuitPorkerTest(fileName);
RankPorkerTest(fileName);
Console.ReadLine();
static void SuitPorkerTest(string fileName)
var destFilename = @"D:\SortedSuitCard.txt";
var list = Common.ReadFile(fileName);
SuitSort suitObj = new SuitSort(list);
suitObj.SortSuitList();
Common.WriteFile(destFilename, suitObj.SuitList);
static void RankPorkerTest(string fileName)
var destFilename = @"D:\SortedRankCard.txt";
var list = Common.ReadFile(fileName);
RankSort rankObj = new RankSort(list);
rankObj.SortRankList();
Common.WriteFile(destFilename, rankObj.RankList);
扑克文件为:
&2&Q&K&6&4&7&8&2&6&2&J&K&A&3&5&A&Q&8&K&J&7&5&10&3&5&10&3&9&10&9&4&8&7&8&K&Q&5&4&A&J&2&J&10&3&7&9&9&6&Q&4&6&A&9&Q&3&6&J&K&J&10&5&2&4&9&7&6&7&8&4&7&Q&3&10&5&J&9&10&2&8&2&K&5&Q&3&Q&A&5&3&A&6&6&J&9&4&10&8&4&K&2&K&7&A&8&A
Suit排序结果为:
&A,&K,&Q,&J,&10,&9,&8,&7,&6,&5,&4,&3,&2,&A,&K,&Q,&J,&10,&9,&8,&7,&6,&5,&4,&3,&2,&A,&K,&Q,&J,&10,&9,&8,&7,&6,&5,&4,&3,&2,&A,&K,&Q,&J,&10,&9,&8,&7,&6,&5,&4,&3,&2
Rank排序结果为:
&A,&A,&A,&A,&K,&K,&K,&K,&Q,&Q,&Q,&Q,&J,&J,&J,&J,&10,&10,&10,&10,&9,&9,&9,&9,&8,&8,&8,&8,&7,&7,&7,&7,&6,&6,&6,&6,&5,&5,&5,&5,&4,&4,&4,&4,&3,&3,&3,&3,&2,&2,&2,&2
此处参考了 方法,在此引用和学习,希望见谅!
阅读(...) 评论()cdr怎么绘制扑克牌四花色中的黑梅花?
作者:佚名
字体:[ ] 来源:互联网 时间:04-26 14:12:53
cdr怎么绘制扑克牌四花色中的黑梅花?想使用cdr绘制一个梅花花色,就是我们经常玩扑克牌中的梅花,该怎么画呢?下面我们来看看cdr画梅花牌的详细教程,需要的朋友可以参考下
下面介绍一下如何用CorelDRAW软件快速制作标准的扑克上的梅花花色,对CorelDRAW软件有兴趣的朋友,可以一起讨论研究制作。
1、在电脑上打开CorelDRAW软件,选择&多边形工具&,并且设置多边形的边为三条边。
2、接着,按着Ctrl键画一个等边的三角形。
3、选择&椭圆工具&,按着Ctrl键画一个比三角形大一点点的正圆。
4、选择菜单栏上的&查看&,将&对齐对像&勾选上。
5、用选择工具选择上正圆,并且把鼠标放在圆心的位置上,然后按下鼠标,将圆心拖到三角形上边的角上,如下图的效果。
6、按一下数字键盘的&+&键,就可以在原地复制出一个圆来。再用上面的方法,将这个圆的圆心和三角形左边的角对齐。
7、再按一下数字键盘的&+&键,就可以在原地复制出一个圆来。再用上面的方法,将这个圆的圆心和三角形右边的角对齐。
8、点击三角形,将三角形移到一旁去。
9、接着,将三个圆形都选择上,再点击属性栏的&焊接&按键,对三个圆进行焊接。
10、将刚才移出的三角形移到在三个圆的下边。
11、把所有对像都选择上,再点击上边属性栏的&对齐和属性&按键。
12、将左右居中勾选上,再点击应用,最后点击关闭。
13、接着,点击属性栏的&焊接&按键,对所有对像进行焊接。
14、最后,将对像的轮廓和内部都填充上黑色。这样,一个标准的扑克上的梅花花色就制作完成了。
相关推荐:
大家感兴趣的内容
12345678910
最近更新的内容&>&&>&&>&&>&JAVA开发花色与数字扑克牌
JAVA开发花色与数字扑克牌
上传大小:4KB
随机产生扑克牌的代码,将花色与数字结合一起的那中啊
综合评分:3.5(2位用户评分)
所需积分:10
下载次数:6
审核通过送C币
创建者:doomlord
创建者:qw
课程推荐相关知识库
上传者其他资源上传者专辑
开发技术热门标签
VIP会员动态
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
JAVA开发花色与数字扑克牌
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
xiaoziwawawa
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:牌小王代表什么数字
全部答案(共2个回答)
对四种花色给予不同的文化阐述。法国人将四种花色理解为矛、方形、丁香叶和红心;德国人把四种花色理解为树叶、铃铛、橡树果和红心;意大利人将四种花色理解为宝剑、硬币、拐杖和酒杯;瑞士人将四种花色理解为橡树果、铃铛、花朵和盾牌;英国人则将四种花色理解为铲子、钻石、三叶草和红心。 为什么要以这四种图案作为扑克牌的花色,历来说法很多。比较集中的说法有以下两种:一说是这四种花色代表当时社会的四种主要行业,...
早期风行欧洲上流社会的扑克牌是手工制作的。到15世纪后,随着印刷术的发展,扑克牌开始采用印刷方式制作,使得扑克牌开始在民间广泛流传。早期各国扑克牌张数不一,如意大利为22张,德国为32张,西班牙为40张,法国为52张,直到现在我们仍可从这些国家看到以上张数的扑克牌。现在我们通常见到的54张扑克牌是由1392年法国开始出现的52张扑克牌的模式,外加大、小王演变而来的。后来,各国扑克牌张数逐渐统一为现在的54张模式。 TextTextText扑克牌分为四种花色:黑桃、方块、梅花和红桃。各国人民都以本国民族相关信息对四种花色给予不同的文化阐述。法国人将四种花色理解为矛、方形、丁香叶和红心;德国人把四种花色理解为树叶、铃铛、橡树果和红心;意大利人将四种花色理解为宝剑、硬币、拐杖和酒杯;瑞士人将四种花色理解为橡树果、铃铛、花朵和盾牌;英国人则将四种花色理解为铲子、钻石、三叶草和红心。 为什么要以这四种图案作为扑克牌的花色,历来说法很多。比较集中的说法有以下两种:一说是这四种花色代表当时社会的四种主要行业,其中黑桃代表长矛,象征军人;梅花代表三叶花,象征农业;方块代表工匠使用的砖瓦;红桃代表红心,象征牧师。另一说是这四种花色来源于欧洲古代占卜所用器物的图样,其中黑桃代表橄榄叶,象征和平;梅花为三叶草,意味着幸运;方块呈钻石形状,象征财富;而红桃为红心型,象征智慧和爱情。 扑克牌的54张模式解释起来也非常奇妙:大王代表太阳、小王代表月亮,其余52张牌代表一年中的52个星期;红桃、方块、梅花、黑桃四种花色分别象征着春、夏、秋、冬四个季节;每种花色有13张牌,表示每个季节有13个星期。如果把J、Q、K当作11、12、13点,大王、小王为半点,一副扑克牌的总点数恰好是365点。而闰年把大、小王各算为1点,共366点。专家普遍认为,以上解释并非巧合,因为扑克牌的设计和发明与星相、占卜以及天文、历法有着千丝万缕的联系。 扑克牌中的J、Q、K是英文中侍从、王后、国王的缩写,12张人头牌分别代表历史上某个人物: 黑桃K是公元前10世纪的以色列国王索洛蒙的父亲戴维,他善用竖琴演奏,并在圣经上写了许多赞美诗,所以黑桃K画面上经常有竖琴图样。 红桃K是查尔斯一世弗兰克国王,他叫沙勒曼,是四张国王牌中唯一不留胡须的国王。 方块K是罗马帝国的国王、名将和政治家凯萨,是四张国王牌中唯一一张侧面像。 梅花K是最早征服世界的马其顿帝国国王亚力山大,他的衣服上总是佩戴着配有十字架的珠宝。 黑桃Q是希腊的智慧和战争女神帕拉斯·阿西纳,是四张皇后牌中唯一手持武器的一位皇后。 红桃Q、方块Q分别是朱尔斯和莱克尔皇后。 梅花Q名叫阿金尼,由女王(Regina)一词而来,她手持蔷薇花,表示英国以红色蔷薇花为标志的兰开斯特王族和以白色蔷薇花为标志的约克王族经过蔷薇战争后终于和解,将双方的蔷薇花结在一起。 黑桃J和方块J分别为查尔斯一世的侍从霍克拉和洛兰。 红桃J为查尔斯七世的侍从拉海亚。 梅花J是阿瑟王故事中的著名骑士兰斯洛特。 近年来,许多国家都把反映本国文化、民俗和风貌的有代表性的画面印在扑克上。这种花式扑克将知识性、娱乐性、观赏性融为一体,历史、人物、风光、建筑、文学、艺术、动植物、教育等等无所不包,堪称小百科全书,深受广大扑克牌爱好者和收藏者的欢迎。消费者在用扑克进行娱乐的同时,既增长了知识,又得到了一次次美的享受
扑克牌共有54张,其中52张是正牌,表示一年52个星期;两张是副牌,大王代表太阳,
小王代表月亮;一年四季的春、夏、秋、冬用桃、心、梅、方来表示,其中红心、...
这个可不是你自创的啊,早就有各种说法了!!
52张,不知道对不对
看来你以后和他单独相处的时候,你要小心了。因为,他是发出“性号”,试探着看你会不会拒绝。如果你不拒绝,可能会硬来哦。
一个孩子,对一个成熟女孩说这话,无异于天...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区

我要回帖

更多关于 扑克牌花色英文 的文章

 

随机推荐