扑克牌2

随机发牌:去掉大小王,发给4个人,每人发13张,要求分四行,并按花色和牌点排序。样例:SAK9  HKT9876  DQ32  CJ。

 1 #include<iostream>
 2 #include<cstdlib>
 3 using namespace std;
 4 const char puke[]="123456789TJQK";//转换数组
 5 const char color[] = "SHDC";//四种花色
 6 void outpuke(int i ,int &j, int a[4][13], int top)
 7 //第i个人的出牌函数,j表示当前第几张牌,top代表花色的数字界限(例如:黑桃top=13,红桃top=26)
 8 {
 9     if(a[i][j]<top)cout<<color[top/13-1];//color为了省事直接用top/13-1即可
10     while(a[i][j]<top&&j<13)
11     {
12         cout<<puke[a[i][j++]%13];
13     }
14     cout<<" ";
15 }
16 int main()
17 {
18     int people[4][13];//四个人,每人13张牌
19     int num[4] = {0,0,0,0};//四个人的当前手牌数
20     srand(time(NULL));
21     for(int i = 0 ; i < 52 ; i++)//随机发牌
22     {
23         int tem = rand()%4;
24         while(1)
25         {
26             if(num[tem]<13)break;
27             else tem = rand()%4;
28         }
29         if(tem==0)people[tem][num[0]++] = i;
30         if(tem==1)people[tem][num[1]++] = i;
31         if(tem==2)people[tem][num[2]++] = i;
32         if(tem==3)people[tem][num[3]++] = i;
33     }
34     for(int peo=0; peo < 4 ; peo ++ )
35     {
36         cout<<"第"<<peo+1<<"个人的手牌: ";
37         int j = 0;
38         for(int i = 1 ; i < 5 ; i ++)
39         {
40             outpuke(peo,j,people,13*i);
41         }
42         cout<<endl;
43     }
44 }
时间: 2024-10-21 01:00:04

扑克牌2的相关文章

扑克牌顺子

题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!"红心A,黑桃3,小王,大王,方片5","Oh My God!"不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13.上面的5张牌就可以变成"1,2,3,4,5"

2-08. 用扑克牌计算24点(25) (ZJU_PAT 数学 枚举)

题目链接:http://pat.zju.edu.cn/contests/ds/2-08 一副扑克牌的每张牌表示一个数(J.Q.K分别表示11.12.13,两个司令都表示6).任取4张牌,即得到4个1~13的数,请添加运算符(规定为加+ 减- 乘* 除/ 四种)使之成为一个运算式.每个数只能参与一次运算,4个数顺序可以任意组合,4个运算符任意取3个且可以重复取.运算遵从一定优先级别,可加括号控制,最终使运算结果为24.请输出一种解决方案的表达式,用括号表示运算优先.如果没有一种解决方案,则输出-1

JAVA学习面向对象之 扑克牌(初)

感想: 一开始不了解或者说是对JAVA的特性不熟悉,不知道类与类之间的联系,对JAVA的封装,继承,多态不熟悉和没有更好的理解,在以后的学习过程中要掌握并熟悉JAVA的开发习惯, 在写代码过程中还有众多东西没有掌握,靠着老师和同学的帮助完成这次学习,初步了解了JAVA面向对象开发的基本要领.写这个博客以便于自己今后学习,也算是一段美好的回忆吧! 上面是一个类图  表示着写这个程序的只要思路. Card类:他的下级是cardview上级是player,有着一定的关系 package com.cqv

算法题7 判断扑克牌中的顺子

题目: 来源 http://www.cnblogs.com/python27/archive/2011/11/27/2264405.html 随机抽取扑克牌中的n张牌,判断是不是顺子,即这5张牌是不是连续的.其中A看成1,J看成11,Q看成12,K看成13,大小王可以看成任何需要的数字. 分析: 对于扑克牌来说,数字范围是很明确的,1到K外加大小王(设定为M).假如这副牌是个顺子,也就是每张牌都不相同,那么利用一个大小为14的辅助数组counts[]就可以快速的实现排序,记录每张牌出现的次数,然

BZOJ 1816: [Cqoi2010]扑克牌( 二分答案 )

二分答案.. 一开始二分的初始右边界太小了然后WA,最后一气之下把它改成了INF... ------------------------------------------------------------------------ #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #define rep( i , n ) for( int i = 0 ; i

扑克牌

假定一副新扑克牌的顺序为:大王.小王.黑桃A,2,3,…,T,J,Q,K.红心A,2,3,…,T,J,Q,K.方块 A,2,3,…,T,J,Q,K.梅花A,2,3,…,T,J,Q,K.现将两副扑克牌摞放在一起,然后将最上面的一张牌舍去,将之后的一张牌移到整副牌 的最下面,重复此过程.问:最后剩下的是哪张牌? 1 #include<iostream> 2 using namespace std; 3 class Sqlist //用循环链表 4 { 5 public: 6 struct Node

【剑指offer】:Q44:扑克牌的顺子

def IsContinuous(seq, num = 5): zeros = 0; d = 0 seq = sorted(seq) for i in range(num - 1): if seq[i] == 0: zeros += 1 continue if seq[i] == seq[i + 1]: return False d += seq[i + 1] - seq[i] - 1 return zeros >= d [剑指offer]:Q44:扑克牌的顺子,布布扣,bubuko.com

用扑克牌保存文本信息

事实上,本文是在Peter Jerde的How much information can be stored by ordering 52 playing cards文章基础上翻译.改编和扩展而来的.当然这是经过Jerde本人首肯的. 注意本文方法并非最优,也没有完全利用所有的信息空间,只是简单的尝试. 有数字的地方就有信息.所以扑克牌中保存信息不是什么新鲜事. PDF文档点这里:下载 原文(英文)点这里:访问 这里有两个DEMO. 编码DEMO,解码DEMO 首先是"DEEP IN SHALL

推断5张扑克牌的组成

一副牌中发五张扑克牌给你,让你推断数字的组成: 有下面几种情况: 1:四条:即四张一样数值的牌(牌均不论花色) 2:三条带一对 3:三条带两张不同样数值的牌 4:两对 5:顺子(包含10,J,Q,K,A) 6:什么都不是 7:仅仅有一对 分析: 应该不包括大小王,另外J.Q.K.A分别相当于11.12.13.14,尽管从2到A一共是13张牌.可是为了方便相应,使用了一个包括15个元素的数组来记录每个点数出现的次数(舍弃0号元素和1号元素). 为了记录发给你的5张牌.直接用整型肯定不行,不能接受J

扑克牌大小

描述 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A.2各4张,小王1张,大王1张.牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如:4 4 4 4-joker JOKER.请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR.基本规则: