C语言实现随机发牌

本文实例为大家分享了C语言实现随机发牌的具体代码,供大家参考,具体内容如下

#include "stdafx.h"
#include<time.h>
#include<stdlib.h>

int card[54];//保存每张牌的数字符号
bool flag[54];//标记数组 false 代表这个单元编号的牌没抽过
void show1();
void mix1();
int main()
{
 srand(time(NULL));
 mix1();
 show1();
 int a;
 scanf_s("%d", &a);
 return 0;
}
void mix1() {
 int c = 0;
 for (int i = 0; i < 54; i++) {
  c++;
  int a = rand() % 54;
  if (flag[a] == false) {
   card[i] = a;
   flag[a] = true;
  }
  else
  {
   i--;
  }
 }
 printf("c=%d\n", c);
}
void show1() {
 char flowers[4][10] = { "\3","\4","\5","\6" };
 char number[13][3] = { "A","2","3","4","5","6","7","8","9","10","J","Q","K" };
 for (int i = 0; i < 54; i++) {
  if (card[i] == 52) {
   printf("大王 ");
  }
  else if (card[i] == 53) {
   printf("小王 ");
  }
  else {
   printf("%s %s ", flowers[card[i] / 13], number[card[i] % 13]);
  }
  if ((i + 1) % 17 == 0)
  {
   printf("\n");
  }
 }
}

小编再为大家分享一段:C语言扑克牌生成程序

// poker.c
// day05
//
// 一个扑克牌生成程序:运行如下:
// 请输入你要的张数:5
// 程序输出:H5、H6、H7、H8、H9(Spade(黑桃)、Club(梅花)、Heart(红桃)、Diamond(方块))
// 建议:char suit[4] = {'S','D','C','H'}
// char rank[13] = {'2','3','4','5','6','7','8','9','T','J','Q','K','A'};
// Created by apple on 13-6-6.
// Copyright (c) 2013年 apple. All rights reserved.
//

#include <stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
 char suit[4] = {'S','C','H','D'};
 char rank[13] = {'2','3','4','5','6','7','8','9','T','J','Q','K','A'};
 int num = 0,a = 0,b = 0;
 int temp[4][13] = {0};
 srand((unsigned)time(0));

 printf("请输入您要的张数:");
 scanf("%d",&num);

 a = rand() % 4;
 b = rand() % 13;
 do{
  if(temp[a][b]==1){
   a = rand() % 4;
   b = rand() % 13;
  }else{
   printf("%c%c\t",suit[a],rank[b]);
   temp[a][b] = 1;
   num--;
  }
 }while(num);

 return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言实现自动发牌程序

    C语言自动发牌程序,供大家参考,具体内容如下 一副扑克有52张牌,打桥牌时应将牌分给4个人.请设计一个程序完成自动发牌的工作.要求:黑桃用S (Spaces)表示,红桃用H (Hearts)表示,方块用D (Diamonds)表示,梅花用C (Clubs)表示. 分析: 要设置数组表现扑克牌 要设置数组表现玩家 要给扑克牌做特定标识,得到结果后玩家要知道自己手中黑桃有哪些.方块有哪些 初步想法: 设置4个字符数组保存4种梅花牌,设置4个字符数组表示4名玩家分配到的牌 每张牌随机发给4名玩家,当玩

  • C语言实现简易扑克牌游戏

    将一副扑克牌平均分成两份,每人拿一份.a先拿出手中的第一张扑克牌放在桌上,然后b也拿出手中的第一张扑克牌,并放在a刚打出的扑克牌的上面,就像这样两人交替出牌.出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾.当任意一人手中的牌全部出完时,游戏结束,对手获胜. 以下是代码的实现: #define _crt_secure_no_deprecate #include<stdio.h> #include<stdlib.h>

  • C语言编写洗牌发牌程序

    用C语言编写洗牌发牌程序,供大家参考,具体内容如下 题目 现在只有一套扑克牌中52张副牌(无大王小王),包含了4种花色的牌 现在打乱顺序后分给甲乙丙丁四人 全部分配完毕后,输出甲乙丙丁四人所获得的扑克大小及花色 再经过排序,将甲乙丙丁四人的牌按由大到小顺序输出到屏幕上 要素提取 略 补充 牌面上的数字/字母由小到大为: 3 4 5 6 7 8 9 10 J Q K A 2 牌面上的花色由小到大为: 方块 梅花 红桃 黑桃 思路 略 可能出现的问题 略 代码 #include<stdio.h>

  • C语言实现洗牌发牌小程序

    本文实例为大家分享了C语言实现洗牌发牌小程序的具体代码,供大家参考,具体内容如下 构建一副扑克牌,并实现洗牌发牌. 代码 #include <stdio.h> #include <time.h> #include <stdlib.h> #define NUM 10000 //洗牌混乱度 char color[7][7] = {"空白","红桃","黑桃","草花","方片"

  • 使用C语言求解扑克牌的顺子及n个骰子的点数问题

    扑克牌的顺子     问题描述:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字.          思路:可以将这5张牌排个序,然后统计出0的个数以及非0数字之间的间隔数,如果出现重复的非0数字,那么不是顺子.如果间隔数小于等于0的个数,那么是顺子.暂时未想到更好的办法.          参考代码: //函数功能 : 从扑克牌中随机抽5张牌,判断是不是一个顺子 //函数参数 : pCards

  • C语言实现扑克牌计算24点

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

  • C语言实现随机发牌

    本文实例为大家分享了C语言实现随机发牌的具体代码,供大家参考,具体内容如下 #include "stdafx.h" #include<time.h> #include<stdlib.h> int card[54];//保存每张牌的数字符号 bool flag[54];//标记数组 false 代表这个单元编号的牌没抽过 void show1(); void mix1(); int main() { srand(time(NULL)); mix1(); show1

  • Python语言描述随机梯度下降法

    1.梯度下降 1)什么是梯度下降? 因为梯度下降是一种思想,没有严格的定义,所以用一个比喻来解释什么是梯度下降. 简单来说,梯度下降就是从山顶找一条最短的路走到山脚最低的地方.但是因为选择方向的原因,我们找到的的最低点可能不是真正的最低点.如图所示,黑线标注的路线所指的方向并不是真正的地方. 既然是选择一个方向下山,那么这个方向怎么选?每次该怎么走? 先说选方向,在算法中是以随机方式给出的,这也是造成有时候走不到真正最低点的原因. 如果选定了方向,以后每走一步,都是选择最陡的方向,直到最低点.

  • 易语言取随机文本的实例教学

    易语言取随机文本 1.创建一个窗口,建一个编辑框和一个按钮 2.我们主要用分割文本的方法 将他分割成一个文本数组 在编辑框里内容随便写一些字,如:"你好|哈|易语言|作者最帅" 然后用你想用的符号分割,我用的是"|" 如下图: 3.开始写代码,创建一个文本型数组变量 把编辑框1.内容分割 4.取随机数 从1-最多数组里取一个数 我的文本是"你好|哈|易语言|作者最帅" 有四个成员,就是四个 所以就是从1和4间任意取一个数 5.信息框(文本型数组[

  • C语言实现随机发扑克牌

    本文实例为大家分享了C语言实现随机发扑克牌的具体代码,供大家参考,具体内容如下 算法如下: 1.将1-10作为方块.2-20作为梅花,3-30作为红桃,4-40作为黑桃,JQK以及大小王分别排序共54张存放在一维数组中. 3.3个人用一个二维数组来存放三人的牌. 2.主要分为打散(乱序),分配,显示三个操作 打散即洗牌:通过rand以及srand函数来获得,为了避免相同的序列,使用标准时间来作为序列种子. void shuffle(int *cards, int lenth) { int tem

  • R语言关于随机森林算法的知识点详解

    在随机森林方法中,创建大量的决策树. 每个观察被馈入每个决策树. 每个观察的最常见的结果被用作最终输出. 新的观察结果被馈入所有的树并且对每个分类模型取多数投票. 对构建树时未使用的情况进行错误估计. 这称为OOB(袋外)误差估计,其被提及为百分比. R语言包"randomForest"用于创建随机森林. 安装R包 在R语言控制台中使用以下命令安装软件包. 您还必须安装相关软件包(如果有). install.packages("randomForest") 包&qu

  • R语言实现随机森林的方法示例

    目录 随机森林算法介绍 算法介绍: 决策树生长步骤: 投票过程: 基本思想: 随机森林的优点: 缺点 R语言实现 随机森林模型搭建 1:randomForest()函数用于构建随机森林模型 2:importance()函数用于计算模型变量的重要性 3:MDSplot()函数用于实现随机森林的可视化 4:rfImpute()函数可为存在缺失值的数据集进行插补(随机森林法),得到最优的样本拟合值 5:treesize()函数用于计算随机森林中每棵树的节点个数 随机森林算法介绍 算法介绍: 简单的说,

  • C语言实现随机抽取纸牌程序

    本文实例为大家分享了C语言实现随机抽取纸牌的具体代码,供大家参考,具体内容如下 程序设计要求 本程序负责发一副标准纸牌,每张标准纸牌都有一种花色(梅花.方块.黑桃.红桃)和一个等级(2,3,4,5,6…K,A).程序需要用户指明手机有几张牌. 程序设计流程 1 . 使用库函数和时间函数,用time函数返回当前时间,用一个数表示,srand函数初始化C语言的随机数生成器.通过把time函数返回值传递给srand可以避免程序每次运行发同样的牌.rand函数产生随机数,通过%缩放. 2 . 使用二位数

  • 基于C语言实现随机点名器(附源码)

    突发奇想写了个随机点名器…以供使用 随机点名器 main函数 #include "myList.h" #define FILENAME "stu.txt" void menu();//画面界面; void userOptions(Node* headNode);//用户选项 int main(void) { SetConsoleTitle(L"随机抽查系统"); Node* List = createrList(); readInfoFromFi

  • 易语言制作随机验证码教学

    如果能帮到你,请支持一下. 易语言制作注册登陆验证码. 随机生成数字字母,大小写字母,易语言验证码! 1.先打开易语言,新建一个窗口. 根据所需绘制基本组件. 我这里绘制的是一个登陆窗口. 2.添加一个分组框,在分组框内添加4个标签,各标签标题大小间距根据需求设置.(注:分组框的目的就是方便同时调整4个标签,在把标签加入到分组框时应该注意,先选中分组框,然后点击组件里面的标签在分组框内绘制.) 3.好了,现在开始写代码了. 打开窗口程序集,Ctrl + L 添加一个程序集变量,验证.文本型 目的

随机推荐