问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c++编程,扑克牌洗牌,将一副扑克牌随机洗好,顺序输出54张扑克牌,求完整代码?注:用C++写

发布网友 发布时间:2022-05-29 18:47

我来回答

4个回答

热心网友 时间:2023-11-05 09:10

#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <time.h>
using namespace std;

// 输出辅助
const string strtype[6] = {"方块", "梅花", "红心", "黑桃", "小王", "大王"};
const string strnum[14] = {"", "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};

struct Card
{
// type是花色,0~3分别表示不同的花色,4是小王,5是大王
// num是牌上的数字
int type, num;
}dat[54];

int main()
{
// 时间随机函数
srand((unsigned)time(NULL));

int cnt = 0;
for (int i = 0; i < 4; i ++)
for (int j = 1; j <= 13; j ++)
{
dat[cnt].type = i;
dat[cnt ++].num = j;
}

dat[cnt ++].type = 4;
dat[cnt ++].type = 5;

for (int i = 1; i < 54; i ++)
// 交换函数,可以证明这样交换出来的数列是随机的
// 这里就不展开了
swap(dat[i], dat[rand() % i]);

// 输出
for (int i = 0; i < 54; i ++)
{
cout << strtype[dat[i].type];
if (dat[i].type < 4) cout << strnum[dat[i].num];
cout << ' ';
}

cout << endl;

system("pause");
}

我测试过啦,运行的一次结果如下(当然是随机的):

方块10 黑桃6 梅花9 红心6 方块J 黑桃A 方块4 梅花3 黑桃K 梅花4 方块K 方块5 方块2
黑桃Q 方块A 红心K 梅花K 黑桃10 红心10 红心3 黑桃2 红心2 黑桃8 小王 方块Q 红心J
梅花6 梅花Q 红心9 方块7 梅花7 方块9 梅花J 红心A 红心4 大王 红心Q 红心8 方块6 黑
桃J 方块8 梅花A 方块3 红心7 黑桃7 梅花10 梅花2 黑桃5 红心5 黑桃3 黑桃9 黑桃4 梅
花5 梅花8
请按任意键继续. . .

希望能够帮到你!

热心网友 时间:2023-11-05 09:11

#include<iostream>
#include<string>
#include <random>
using namespace std;

int main() {
const int color = 4;
const int one_poke = 13;
string poke[52];
for (int i = 1; i < 5; i++) {
for (int j = 1; j < 14; j++) {
poke[13 * (i - 1) + (j - 1)] = to_string(i) + " " + to_string(j);
}
}

int count[52];
for (int i = 0; i < 52; i++) {
count[i] = 4;//几副牌
}

const int pokesNum = 208;//几副牌的张数
string pokes[pokesNum];

for (int i = 0; i < 208; i++) {
int ran = rand() % 52;
if (count[ran] == 0 && ran == 51) {
i--;
continue;
}
if(count[ran] == 0) {
i--;
continue;
}

pokes[i] = poke[ran];
count[ran]--;
}
for (int i = 0; i < 208; i++) {
cout << pokes[i] << endl;
}
getchar();
getchar();
}

热心网友 时间:2023-11-05 09:11

i = 0;
while(i < 54)//54张
{
r=取随机数();
if(a[r] != 0)
{
continue;
}
a[r] = i;
i++;
}

热心网友 时间:2023-11-05 09:12

我凑 = =! 入职培训的吧? 哈哈
编写C语言程序,模拟将一副扑克牌54张随机分给4个人 (如何表达不同花色和...

int poke[13][4],joker[2],last_four_card[4]; //定义四类十三张牌、双王 int i,j,card,count,tank[54],player[20],computer[2][20];bool flag;srand(time(NULL)); //初始化随机种子 for(i=0;i&lt;54;i++)tank[i]=-1; //初始化容器 for(i=0;i&lt;54;i++){ flag=1;while(...

...1) 洗牌功能 2) 发牌功能: 54张牌,随机发给4个玩家,要求显示各玩 ...

int main(void){ int poker[N + 1];int i, j, tmp, remain;/* 初始化阵列 */ for (i = 1; i &lt;= N; i++){ poker[i] = i;printf("%d ", poker[i]);} printf("\n");srand(time(0));/* 洗牌 */ for (i = 1; i &lt;= N; i++){ j = rand() % N + 1;tmp...

C语言编程——发牌洗牌模拟,求帮助

enum { posA, posB, posC, posD};//定义好每个人的位置 struct Postion { struct CARD getcard[25];//每人获得的牌 };struct Postion postion[4];//分配四个位置 struct CARD leftCard[8]; //底牌 struct CARD card[54]; //54张牌 char *suit[]={"Spades","Hearts","Clubs","Diamon...

用C语言编写一个52张扑克牌随即洗牌的程序 并写上注释

定义一个int p[52],里面的元素就是1~52,然后,直接 for循环i:1~52,每次随机一个数 m=rand()%52 ,swap(p[i],p[m]),就ok了

如何求C语言扑克牌洗牌发牌,发的牌要从大到小排序,每个部分都要用

char hx[]={"JQKA"}; // 对应11,12,13,14共四张大于10的牌符号 //生成顺序扑克牌数组: 1~52,梅花1~13,红心14~26,方块27~39,黑桃40~52 void newDeck(int *a) { int i; for ( i=0;i&lt;N;i++ ) a[i]=i+1; } //洗牌,将花色和顺序打乱 void Shuffle(int *a) { ...

C语言,写程序实现一堆扑克牌的排序。

i=j-1;} } int main(){int a[52],i,j,t;srand(time(0));for(i=0;i&lt;52;i++)a[i]=i;for(i=51;i&gt;1;i--)//洗牌、发牌(0~12为第一人,13~25为第二人。。。){j=rand()%(i+1);t=a[i];a[i]=a[j];a[j]=t;} for(i=0;i&lt;4;i++) //排序 sort(&amp;a...

...显示花色和编号的扑克牌,并实现对这副扑克牌洗牌、整牌和发牌三个...

void xipai() //洗牌全局函数 { srand( time(NULL) ); //设置种子 for(int i=0; i&lt;54 ; i++){ int position = rand()%54;int temp=g_cards[i]; //与牌的下标进行互换 g_cards[i]=g_cards[position];g_cards[position]=temp;} } void showCards() //显示全局...

c++ 扑克牌洗牌发牌模拟

;}}}void Poker::ShowPoker( const char* pokerBuff,int size){for( int i=0;i&lt;size;++i ){if( *(pokerBuff+i)=='1' ){SHOW_10();}else{printf("%c ",*(pokerBuff+i));}}}// Deal Cards To The Player// @playerPokerBuf the buffer of the playing player// @len the...

...52张扑克牌随机洗牌并输出#include&lt;stdio.h

for(i=1; i&lt;=N; i++) { if(i%13==0)poker[i]=13; else poker[i]=i%13; } 输入牌错误

模拟扑克牌的洗牌过程

define n 54 /* 总牌数 */ /* 交换前后两组牌 */ void SwapTwo(int d[]){ int i, t;for (i = 0; i &lt; n/2; i++) { t = d[i];d[i] = d[i + n/2];d[i + n/2] = t;} } /* 交错牌 */ void Interleaving(int d[]){ int i, t;for (i = 0; i &lt;...

扑克牌洗牌做牌手法 扑克牌花式洗牌教程 扑克牌洗牌 扑克牌的洗牌方法 扑克牌洗牌基本功 扑克牌怎么洗牌耍帅 c用什么软件编程 扑克牌 扑克牌jqk分别是谁
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
双人沙发的一般尺寸是多少 双人沙发的标准尺寸是多少 双人沙发的常规尺寸是多少 一般的双人沙发的尺寸是多少 2人沙发标准尺寸是多少 面对此等形势与挑战,我们又该如何应对? 大量国央企数科公司成立,传统软件公司如何应对 造梦西游OL 造梦西游ol 80级以后该干嘛? 西铁城走心机程序更新失败 房子满二是指多久 美食的俘虏小松的菜刀断裂在第几集 有什么网址是专门教菜鸟魔术师洗牌的 推荐一些好看的日本动画,类似于网球王子、家庭教师、犬夜叉等等。 塔罗牌怎样洗牌和摆排阵? 照明的分类一般可分哪三种 求一部美食类动画片名字,主角有一集是和一部机器人比赛做蛋卷的,还有一集是去找冬虫夏草的。 梅尔克二代的介绍 游戏王洗牌问题 美食的俘虏51集 美食的俘虏52集 5、室内照明按照光照类型可分为哪几类() ()()(),按照用途分可分为哪几类()()(? 二层皮是假皮? 纸牌洗牌发牌流程图 美食的俘虏什么时候出动画片大结局 美食的俘虏代梅尔克第一次出现是第几集 计算机系统结构里的多级立方体网络怎么理解? 求助一种语音聊天工具 QQ邮箱是怎么打开的啊? 求教:没办法在QQ上直接打开QQ邮箱和QQ相册!! 我的QQ空间相册打不开了,QQ邮箱也打不开,怎么回事啊? 在天河东圃盈彩美居到万科米酷有多远 美食的俘虏哪一集小松的刀口坏365 动漫美食的俘虏片头曲叫什么 家常菜蚝油双菇,制作要点有哪些呢? 海鲜菇汁扒鲜芦笋的家常做法 好吃不胖的菜 北京市上海市深圳近十年每年的房价平均是多少? 今天我在存钱的时候那个银行的工作人员告诉我电脑掉机了是怎么回事 电脑用着用着硬盘掉了 电脑掉地了 电脑掉下来了怎么办?在线等 在学校电脑掉了怎么办 姑娘果钾含量多少 CF手游神罚手斧多少钱 cf的轻型军用手斧多少钱? cf手斧ss多少cf点半年,普通的手斧多少钱半年 CF的军用手斧—翔龙一年多少钱 cf m4a1-s,手斧30天多少钱?m4a1-s和m4a1-a哪把好? CF军用手斧价格 CF手斧多少钱??? cf半年大炮、铁锹、M4A1-S或A、手斧。一年高爆,一共多少钱。分别多少钱?