C语言实现洗牌发牌程序,用C语言实现的扑克牌洗牌程序
一副牌:54张
从0开始排序:
0-12表示黑桃 A 1,2,3,... 10,J,Q,K
13-25表示红桃 A 1,2,3,... 10,J,Q,K
26-38表示草花 A 1,2,3,... 10,J,Q,K
39-51表示方块 A 1,2,3,... 10,J,Q,K
52,53表示大小王
#include
void shuffle(char *porker)
{
/*将存放数组初始化为1-54*/
for (int i = ; i < ; i++)
{
porker[i] = i;
}
/*生成随机种子*/
srand(time(NULL));
/*洗牌,生成随机数,两两交换*/
for (int i = ; i < ; i++)
{
int rnd = rand() % ;
/*指定任意一张牌,与当前牌进行交换*/
int temp = porker[i];
porker[i] = porker[rnd];
porker[rnd] = temp;
}
}
void play(char *porker)
{
for (int i = ; i < ; i++)
{
printf("i=%2d\t", porker[i]);
if ((i + ) %==)
printf("\n");
}
}
void bottom(char *porker)
{
/*定义花色的枚举体*/
enum TYPE{
黑桃,红桃,草花,方块
};
/*定义几个特殊牌的枚举体*/
enum VALUE{
A=,J = , Q, K
};
printf("\n=======底牌=========\n");
for (int i = ; i < ; i++)
{
/*大小王特殊处理*/
if (porker[i] == ) printf("小王");
if (porker[i] == ) printf("大王");
else{
/*0-12代表红桃的A-1-2-K*/
int type = porker[i] / ;
int value = porker[i] % ;
switch (type)
{
case 黑桃:printf("黑桃"); break;
case 红桃:printf("红桃"); break;
case 草花:printf("草花"); break;
case 方块:printf("方块"); break;
}
switch (value)
{
case A:printf("A"); break;
case J:printf("J"); break;
case Q:printf("Q"); break;
case K:printf("K"); break;
default:printf("%d", value); break;
}
printf("\t");
}
}
}
int main()
{
/*存放54张扑克的数组*/
char porker[] = { };
/*洗牌*/
shuffle(porker);
/*出牌*/
play(porker);
/*底牌,3张底牌*/
bottom(porker);
system("pause");
return ;
}
C语言实训——扑克牌洗牌程序
说明此程序本来是21点扑克程序的一个被调函数,在这里我单独将它拿出来作为一个小程序. #include #include #include&l ...
基于visual Studio2013解决C语言竞赛题之1053洗牌
题目 解决代码及点评 /* 功能:洗扑克牌.将54张牌分别编号为1,2,-,54号,并放在数组M中. 洗牌方法如下:产生[1,54]区间内的一个随机数K,将M[1]与M[K]交换: ...
java斗地主扑克 扑克牌 洗牌 发牌 Collection 集合练习
package com.swift.poker; import java.util.ArrayList; import java.util.Collections; /*训练考核知识点:Collect ...
C++分享笔记:扑克牌的洗牌发牌游戏设计
笔者在大学二年级期间,做过的一次C++程序设计:扑克牌的洗牌发牌游戏.具体内容是:除去大王和小王,将52张扑克牌洗牌,并发出5张牌.然后判断这5张牌中有几张相同大小的牌,是否是一条链,有几个同花等. ...
C++走向远洋——67(项目二、洗牌)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
LinkedList存储一副扑克牌,实现洗牌功能。
package cd.itcast.runble; import java.util.LinkedList; import java.util.Random; /** * LinkedList存储一副 ...
洗牌算法Fisher-Yates以及C语言随机数的产生
前些天在蘑菇街的面试中碰到一道洗牌的算法题,拿出来和大家分享一下! 原题是:54张有序的牌,如何无序的发给3个人? 这个题是运用经典的洗牌算法完成.首先介绍一种经典的洗牌算法--Fisher-Yate ...
AS3.0 扑克牌乱序排列法洗牌
package { /* *@ClassName:package::PokerMain *@Intro:这是一个初始化1-52扑克牌,然后进行乱序排列进行洗牌: *@Author:非若 *@Date: ...
随机推荐
Junit测试中的setup和teardown 和 @before 和 @After 方法
这几天做Junit测试接触到了setup和teardown两个方法,简单的可以这样理解它们,setup主要实现测试前的初始化工作,而teardown则主要实现测试完成后的垃圾回收等工作. 需要注意的是 ...
大体了解Lua的语法
Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱. 在Lua中,一切都是变量,除了关键字.请记住这句话. I. 首先是注释 写一个程序,总是少不了注释的. 在Lua中,你可以使用单行注释和多 ...
Android开发之ViewPager
什么是ViewPager? ViewPager是安卓3.0之后提供的新特性,继承自ViewGroup,专门用以实现左右滑动切换View的效果. 如果想向下兼容就必须要android-support-v ...
PHP操作Oracle数据库
原文出处 (这是来自“百度文库”中的文章写得很不错) PHP操作Oracle数据库(OCI数据抽象层)OCI(Oracle 8 Call-Interface)是PHP中内置的数据库抽象层函数.下面针对 ...
生成mif文件的几种方法总结
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据.生成QuartusII11.0可用的mif文件,有如下几种方式: 方法1:利用Q ...
【Unity技巧】四元数(Quaternion)和旋转
四元数介绍 旋转,应该是三种坐标变换--缩放.旋转和平移,中最复杂的一种了.大家应该都听过,有一种旋转的表示方法叫四元数.按照我们的习惯,我们更加熟悉的是另外两种旋转的表示方法--矩阵旋转和欧拉旋转. ...
C#控件事件属性大全
C#控件及常用设计整 1.窗体... 1 2.Label 控件... 3 3.TextBox 控件... 4 4.RichTextBox控件... 5 5.NumericUpDown 控件... 7 ...
SpringBoot-02:SpringBoot中的POM文件详细解释
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 我把pom文件,以及它的详细解释发出来 <?xml version="1.0" en ...
解决Entity Framework查询匿名对象后的跨域访问的一种方式
在Entity Framework中,可以使用lambda表达式进行对数据的查询,而且可以将查询结果直接映射为对象或者对象列表,这极大的提高的开发速度,并且使数据层的数据更加方便处理和传递.但是很多时 ...
端口以及服务常用cmd
netstat -ano 列出所有端口的情况 netstat -aon|findstr "49157" 查出特定端口的情况 ...
C语言实现洗牌发牌程序,用C语言实现的扑克牌洗牌程序相关推荐
- c语言洗牌发牌结构体,C语言实现洗牌发牌小程序
本文实例为大家分享了C语言实现洗牌发牌小程序的具体代码,供大家参考,具体内容如下 构建一副扑克牌,并实现洗牌发牌. 代码 #include #include #include #define NUM ...
- c语言洗牌发牌结构体,C语言程序设计课程设计多功能计算器、洗牌发牌、学生文件处理、链表处理.doc...
序号: 30 学号: 课 程 设 计 设计课程名称: C语言程序设计 题 目:多功能计算器.洗牌发牌.学生文件处理.链表处理 学 生 姓 名: 学 院(系):信息科学与工程学院 专 业 班 级: 指 ...
- C语言 扑克牌洗牌发牌统计同花顺个数程序
目录 一.2个算法关键点 关键点1:洗牌算法 关键点2:查找同花顺算法 二.运行结果 三.完整代码 题目: 一张扑克牌可用结构类型描述,一副扑克牌的52张牌则是一个结构数组. 1.试编写洗牌函数和供4 ...
- python给四个人发牌_python小程序之4名牌手洗牌发牌问题解析
本文为大家解析了python实现4名牌手洗牌发牌的问题,供大家参考,具体内容如下 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌.创建函数gen_p ...
- 通过程序实现斗地主过程中的洗牌,发牌和看牌(简约版)
需求:通过程序实现斗地主过程中的洗牌,发牌和看牌 思路: 创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现 往牌盒里面装牌 洗牌,也就是说把牌打撒,用Collections的shuf ...
- Java模拟玩家洗牌发牌小程序
参考了网上了一些内容,自己实现了一个模拟玩家洗牌.发牌的小程序,若有问题欢迎提出,希望我们可以一起进步.QQ:767696856 (其中洗牌是直接通过集合类中的shuffle实现) package c ...
- java集合框架的练习之斗地主洗牌发牌的模拟(升级版)
首先,奉上java集合框架的练习之斗地主洗牌发牌的模拟(初级版)的链接:http://blog.csdn.net/striner/article/details/78489306 初级版只具有洗牌发牌 ...
- 纸牌游戏洗牌发牌排序算法设计
纸牌游戏洗牌发牌排序算法设计 本文提供纸牌游戏设计制作的基础部分,即洗牌,发牌,牌张排序排列显示的算法. 以及游戏开始时间使用时间的显示.我是用简单的C语言编译器MySpringC在安卓手机上编写的. ...
- 模拟扑克牌的洗牌发牌
在内存中模拟出一副牌,然后模拟洗牌,发牌等动作 流程:构建一副牌保存到一个数组中–>洗牌–>创建玩家–>向玩家发牌–>输出每个玩家的牌 #include <stdio.h ...
- Java实现扑克牌的洗牌发牌看牌
需求: 通过程序实现斗地主过程中的洗牌,发牌和看牌 方法一: 只看到每位用户手中的牌: 思路: 1:创建一个牌盒, 也就是定义一个集合对象,用ArrayList集合实现 2:往牌盒里面装牌 3:洗牌, ...
最新文章
- Nginx服务器搭建和基本配置详解
- DeepLab v2的摘要部分(翻译加理解)
- 波卡链Substrate (7)Grandpa协议四“责任安全机制”
- 禁用浏览器缓存Ajax请求
- python连接MySQL数据库搭建简易博客
- Data-structures-and-algorithms-interview-questions-and-their-solutions
- jquery 判断元素可见性
- 采用JAVA编写程序实现从文件读取操作
- 黑马博客——详细步骤(七)项目功能的实现之文章管理
- 论文阅读笔记(二)——Xception
- GB28181协议之语音对讲
- win10前置耳机插孔没声音_win10头戴式耳机麦克风没声音怎么办
- netbsd apache php mysql,NetBSD配置aria2的web前端YAAW笔记
- UUID是什么 ?
- 如何维持手机电池寿命_如何延长手机电池寿命?总有些事你不知道
- JAVA实现用户抽奖包含完整代码
- html页面实现打印
- 蓝天格锐生命环的使用方法
- Android开发实用小工具十一——亲戚称呼计算器
- 人生中第一次做面试官的经历与总结
热门文章
- 说说知名软件的伪装和防范(下)
- vue3仿网易云界面
- l2空间的完备性_话说泛函——Hilbert空间
- java中23%5_23.5 jumpserver介绍
- Excel在统计分析中的应用—第十三章—时间序列分析-季节变动的测定(季节虚拟变量回归法)
- 申请计算机助理的英语作文,助理面试英文自我介绍范文(通用5篇)
- bbys_tu_2016(ret2text)
- 修改注册表为当前用户和默认用户添加日文输入法
- 彻底阻止、禁用google chrome浏览器自动更新、升级
- Qt QML 模块化管理(三)—— qmldir的化繁为简