c语言实现扑克牌的洗牌、发牌功能

首先是得到牌的四种花色、点数;

char poker_kinds[4] = {3,4,5,6};//扑克牌花色ASCII码
char *poker_points[13] = {"A","2","3","4","5",
"6","7","8","9","10","J","Q","K"};//扑克牌点数
//扑克牌结构体,包含花色和点数
typedef struct poker
{
char kinds;//花色
char points[3];// 申请3字节空间存储点数
}Poker;//扑克牌结构体数组
Poker poker[52]; //52张扑克牌

初始化扑克牌

//初始化扑克牌
void initPoker(Poker *poker)
{int i,j=0,k=0;for(i=0; i<52; i++)
{
if(i%4 == 0)
j=0;
if(i%13 == 0)
k=0;
while(j<4 && k<13)
{
poker[i].kinds = poker_kinds[j]; //扑克牌花色ASCII码
strcpy(poker[i].points, poker_points[k]); //扑克牌点数
j++;
k++;
break;
}
}}

洗牌

//洗牌
void shuffle(Poker *poker)
{
Poker *a, *b, temp;
srand((unsigned)time(NULL));
//随机抽取两张牌对调,对调100次
for(int i=0; i<100; i++)
{
a = poker + rand() % 52;
b = poker + rand() % 52;
temp = *a;
*a = *b;
*b = temp;
}}

 发牌及完整代码:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>char poker_kinds[4] = {3,4,5,6};//扑克牌花色ASCII码
char *poker_points[13] = {"A","2","3","4","5",
"6","7","8","9","10","J","Q","K"};//扑克牌点数
//扑克牌结构体,包含花色和点数
typedef struct poker
{
char kinds;//花色
char points[3];// 申请3字节空间存储点数
}Poker;//扑克牌结构体数组
Poker poker[52]; //52张扑克牌//初始化扑克牌
void initPoker(Poker *poker)
{int i,j=0,k=0;for(i=0; i<52; i++)
{
if(i%4 == 0)
j=0;
if(i%13 == 0)
k=0;
while(j<4 && k<13)
{
poker[i].kinds = poker_kinds[j]; //扑克牌花色ASCII码
strcpy(poker[i].points, poker_points[k]); //扑克牌点数
j++;
k++;
break;
}
}}
//洗牌
void shuffle(Poker *poker)
{
Poker *a, *b, temp;
srand((unsigned)time(NULL));
//随机抽取两张牌对调,对调100次
for(int i=0; i<100; i++)
{
a = poker + rand() % 52;
b = poker + rand() % 52;
temp = *a;
*a = *b;
*b = temp;
}}//显示
void displayPoker(Poker *poker)
{
for(int i=0; i<52; i++)
{
printf("%c%s ",poker[i].kinds, poker[i].points);
if((i+1) %13 == 0)
{
printf("\n");
}
}
}int main(void)
{
printf("洗牌前: \n");
initPoker(poker); //调用初始化扑克牌函数
displayPoker(poker); //显示洗牌前状态 printf("洗牌后: \n");
shuffle(poker); // 调用洗牌函数
displayPoker(poker); // 显示洗牌后状态return 0;
}

更多有趣的项目源码,尽在下方学习交流群内

C/C++学习,从入门到入坑https://jq.qq.com/?_wv=1027&k=JGvFlYJm

学习C/C++的小伙伴皆可入,一个学习编程人的聚集地,互相学习,共同进步!!

C语言扑克牌洗牌发牌代码相关推荐

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

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

  2. c语言洗牌发牌结构体,C语言实现洗牌发牌小程序

    本文实例为大家分享了C语言实现洗牌发牌小程序的具体代码,供大家参考,具体内容如下 构建一副扑克牌,并实现洗牌发牌. 代码 #include #include #include #define NUM ...

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

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

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

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

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

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

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

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

  7. 扑克牌洗牌发牌,并排序输出(c++)

    52张扑克牌,随机洗牌,然后发牌,并把每个玩家的牌按从大到小的顺序显示 大小规则:AKQJ1098765432 输出效果: 完整代码: #include <iostream> #inclu ...

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

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

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

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

  10. c语言洗牌发牌结构体,C语言程序设计课程设计多功能计算器、洗牌发牌、学生文件处理、链表处理.doc...

    序号: 30 学号: 课 程 设 计 设计课程名称: C语言程序设计 题 目:多功能计算器.洗牌发牌.学生文件处理.链表处理 学 生 姓 名: 学 院(系):信息科学与工程学院 专 业 班 级: 指 ...

最新文章

  1. 最长连续子序列nlogn算法
  2. 根据字符出现频率排序
  3. 快速清理Android中无用的资源信息,图片,字符串等
  4. uiiamgeview 设置圆角
  5. iOS开发-证书问题精析~
  6. catia曲面设计从入门到精通_CATIA V5 曲面设计从入门到精通
  7. C++原子性实现无锁队列
  8. linux多线程编程介绍
  9. 一元初始,森罗万象:5G角逐已被荣耀拉开序幕
  10. 黑鲨装机大师计算机产品密钥,黑鲨装机大师U盘重装win10系统详细教程
  11. 用.NET设计一个假装黑客的屏幕保护程序
  12. 拓嘉启远电商:拼多多缺货会降权吗?如何处理
  13. 编写一个函数,使其向主函数返回您输入的3个整数参数中的最大值,并在主函数中输出该值。
  14. 【数学】Baby Step,Giant Step
  15. 关于Oracle导出到csv文件的脚本-spool方法
  16. 【多肉】播种育苗 友情推荐:教你如何买到真种子
  17. nginx架构(修改版)
  18. 一起来看流星雨剧情简介/剧情介绍/剧情分集介绍第二十四集
  19. 96.android 简单的更新APP、下载安装APK(四种方式)
  20. 【最全下载合集】最新Office 2021微软官方原版离线安装下载地址合集

热门文章

  1. 前言——前端转型之殇
  2. 科技爱好者周刊:第 61 期
  3. python 杨辉三角居中打印_利用python打印杨辉三角
  4. word:回车替换成空格
  5. 【x86架构】中断基础介绍
  6. 向奇汉:服务企业互联网化 打造社会化商业平台
  7. 堆与栈 java_JAVA中堆和栈的区别 - 勇往直前路飞桑的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  8. 现代控制理论教学与半年工作总结(~)
  9. 按键精灵助手无法连接模拟器解决方案【适用任何模拟器】
  10. html五角星符号怎么打,实心五角星怎么打出来(半实心星星符号连续)