52张扑克牌,随机洗牌,然后发牌,并把每个玩家的牌按从大到小的顺序显示

大小规则:AKQJ1098765432

输出效果:

完整代码:

#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;//卡牌结构体
typedef struct deck
{int row = -1;  //花色int column = -1;  //面值
}deck;
//遍历deck数组看是否已经用过某张牌,若用过返回真
bool judge(deck wDeck[], int row_, int column_, int n)
{for (int i = 0; i < n; i++){if (wDeck[i].row == row_ && wDeck[i].column == column_)return true;}return false;
}
//洗牌
void shuffle(deck wDeck[])
{int row_;int column_;for (int card = 0; card < 52; card++){do{row_ = rand() % 4;column_ = rand() % 13;} while (judge(wDeck, row_, column_, card));wDeck[card].row = row_;wDeck[card].column = column_;}
}
//将牌按从大到小排序
void selectSort(deck wDeck[])
{int i, j, index;deck temp;for (i = 0; i < 52; i++){index = i;for (j = index + 4; j < 52; j += 4){if (wDeck[j].column > wDeck[index].column)index = j;}if (index != i){temp = wDeck[i];wDeck[i] = wDeck[index];wDeck[index] = temp;}}
}
//发牌
void deal(deck wDeck[], const char* wFace[], const char* wSuit[])
{//排序,让每个玩家的牌按从大到小的顺序显示selectSort(wDeck);//打印cout << setw(12) << "Player1"  << setw(24) << "Player2"<< setw(24) << "Player3"  << setw(25) << "Player4\n";for (int i = 0; i < 52; i++){cout << setw(6) <<right << wFace[wDeck[i].column] << " of "<< setw(8) <<left << wSuit[(wDeck[i].row)]<< ((i + 1) % 4 == 0 ? '\n' : '\t');}
}
int main()
{//花色const char* suit[4] = { "Heart","Diamond","Club","Spade" };//面值const char* face[13] = { "Deuce","Three","Four","Five" ,"Six","Seven","Eight","Nine","Ten","Jack","Queen","King","Ace" };//卡牌结构体数组,第i个元素存放第i+1张牌的花色和面值deck wDeck[52];//动态随机srand(time(0));//洗牌shuffle(wDeck);//发牌deal(wDeck, face, suit);return 1;
}

扑克牌洗牌发牌,并排序输出(c++)相关推荐

  1. 用JAVA实现简单的扑克牌洗牌发牌并排序

    用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...

  2. Java项目:模拟扑克牌洗牌发牌排序

    用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...

  3. 扑克牌洗牌发牌java代码_java实战(一)之Java模仿斗地主洗牌发牌小游戏

    斗地主是全国范围内的一种桌面游戏,尽管全国各种类型,但大同小异.本节我们先来实现一下斗地主中的简单洗牌.发牌和看牌功能. 按照斗地主的规则,完成洗牌发牌的动作.具体规则为使用 54 张牌打乱顺序,3 ...

  4. 集合之扑克牌---洗牌+发牌+发牌后排序+看牌

    1.首先,我们需要准备扑克牌花色和点数(大小王后面添加) //准备扑克String[] flowers = {"♠", "♣", "♦", ...

  5. C语言 扑克牌洗牌发牌统计同花顺个数程序

    目录 一.2个算法关键点 关键点1:洗牌算法 关键点2:查找同花顺算法 二.运行结果 三.完整代码 题目: 一张扑克牌可用结构类型描述,一副扑克牌的52张牌则是一个结构数组. 1.试编写洗牌函数和供4 ...

  6. 用java制作扑克牌_Java实现扑克牌洗牌和发牌

    本文实例为大家分享了Java实现扑克牌洗牌发牌的具体代码,供大家参考,具体内容如下 实现原理:使用4种花色和13个数字组合成52张牌,放进一个集合中:通过把集合数据排序打乱实现洗牌操作,然后在通过循环 ...

  7. java集合框架的练习之斗地主洗牌发牌的模拟(升级版)

    首先,奉上java集合框架的练习之斗地主洗牌发牌的模拟(初级版)的链接:http://blog.csdn.net/striner/article/details/78489306 初级版只具有洗牌发牌 ...

  8. 纸牌游戏洗牌发牌排序算法设计

    纸牌游戏洗牌发牌排序算法设计 本文提供纸牌游戏设计制作的基础部分,即洗牌,发牌,牌张排序排列显示的算法. 以及游戏开始时间使用时间的显示.我是用简单的C语言编译器MySpringC在安卓手机上编写的. ...

  9. 斗地主洗牌发牌——排序版

    文章目录 前言 一.知识点 二.使用步骤 2.完整代码 感谢您的阅读,不足之处欢迎指正 前言 Java实现模拟斗地主洗牌发牌操作,留下三张底牌,对发到手的纸牌排序. 一.知识点 主要使用HashMap ...

最新文章

  1. windows10下使用wget命令(安装失败,请大家提意见)
  2. dosubmit 成功不成功_供卵试管不成功的原因是什么?一般几次成功?
  3. JQuery(三)-- AJAX的深入理解以及JQuery的使用
  4. 事务的特性和隔离级别
  5. NoSQL 数据库不应该放弃 Consistency
  6. day23 java的异常
  7. mpython掌控板体温_用mpython x玩转掌控板——摇出好心情
  8. Spring Security OAuth2.0_实现分布式认证授权_转发明文token给微服务_Spring Security OAuth2.0认证授权---springcloud工作笔记153
  9. useradd和adduser的区别
  10. js tooltip之wz_tooltip使用方法和参数备忘
  11. 无重复元素的组合算法/n个列表中取n个不同的数
  12. WickedEngine 开源游戏引擎
  13. ios13 无法传参_Win版iOS13越狱最新消息汇总丨拼音字体更新
  14. 34个非常实用的JS一行代码
  15. 0011 绝对值函数
  16. 如何进行网站流量分析(二)
  17. 恍然若梦:南京珠江路一晚安利-传销经历。
  18. 实验二 matlab矩阵分析与处理
  19. [OAuth2.0三方登录系列文章-1]OAuth2.0与三方登录的端到端方案
  20. 两个八进制小数怎么相加_组成原理中关于小数和整数关于十,二,十六,八进制之间任意的转换...

热门文章

  1. 两点二次插值法求极值matlab,三点二次插值法
  2. 餐饮油烟排放监测管理系统的设计与应用
  3. 在计算机领域中通常用bips来描述,9月计算机一级MsOffice考试章节练习题
  4. 2020低压电工考试题库及低压电工证考试
  5. STM32 学习笔记 -- Keil5使用Debug报错之Encountered an improper argument
  6. 使用VSTS的Git进行版本控制(一)——复制现有仓库
  7. Centos7下使用Ceph-deploy快速部署Ceph分布式存储
  8. Hadamard Product
  9. 微信实验四、公众号微博营销推广与比较
  10. Git上传错误解决方案:Push rejected: Push to origin/master was rejected