`
hongbochen1223
  • 浏览: 43977 次
文章分类
社区版块
存档分类
最新评论

扑克牌的结构定义

阅读更多

使用结构定义一副扑克牌,并对变量赋值
扑克牌有四种花色:草花,方块,红心和黑桃,可将花色说明为枚举类型。扑克牌类型为结构类型,包含两个成分:分别存储牌的花色和牌的面值,其中面值为字符数组。

下面是代码的实现部分:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/**
 * 使用结构定义一副扑克牌,
 * 并对变量赋值
 *
 * 扑克牌有四种花色:草花,方块,红心
 * 和黑桃,可将花色说明为枚举类型。扑克牌类型
 * 为结构类型,包含两个成分:分别存储
 * 牌的花色和牌的面值,其中面值为字符数组
 */

enum suits{CLUBS,DIAMONDS,HEARTS,SPADES};

/** 纸牌结构 **/
struct card{
    enum suits suit;
    char value[3];
};

/** 52张牌 **/
struct card cards[52];

/** 纸牌的面值 **/
char values[][3] = {"A","2","3","4","5","6",
    "7","8","9","10","J","Q","K"};

/** 纸牌类型名称 **/
char names[][10] = {"CLUBS","DIAMONDS","HEARTS","SPADES"};

int main()
{
    int i,j;
    enum suits s;

    for(i = 0;i < 13;i++){
        for(s = CLUBS;s <= SPADES;s++){
            j = i * 4 + s;
            cards[j].suit = s;
            strcpy(cards[j].value,values[i]);
        }
    }

    for(j = 1;j <= 52;j++){
        printf("<%s\t%s>\t",names[cards[j].suit],cards[j].value);

        if(j % 4 == 0){
            printf("\n");
        }
    }
    return 0;
}

下面是程序的输出结果:

这里写图片描述

总的来说,这个程序是相对比较简单的,在这里,我们学习使用了结构的定义,以及enum枚举的使用方法。

在实际问题中,有些变量的取值被限定在一个有限的范围内。例如一个星期有7天,一年只有12个月等,这些都可以使用枚举enum来定义。需要说明的是,枚举类型是一种基本数据类型,而不是一种构造结构。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    数据结构实验-扑克牌配对

    采用线性链表方式编程序模拟扑克牌配对游戏。通过键盘输入点数模拟抓牌,拿到新牌时,看手上是不是有同点数的牌,有的话,两者配对并抽掉手上的牌,没有的话,将牌插入手上的牌中,手上的牌保持按点数从小到大顺序...

    数据结构 线性表

    【例2】一副扑克牌的点数(2,3,…,10,J,Q,K,A)也是一个线性表,其中数据元素是每张牌的点数 【例3】学生成绩表(见概论中表1.1)中,每个学生及其成绩是一个数据元素,其中数据元素由学号、姓名、各科成绩及...

    经典项目Java入门,实现斗地主小游戏

    牌的表示和初始化:定义一套扑克牌的数据结构,可以使用数字或字符表示每张牌,例如使用数字1-54或字符2-3A等。然后,初始化一副完整的牌,并进行洗牌操作。 发牌和牌局管理:根据游戏规则,按照特定的发牌顺序将牌...

    PokerPy:我尝试构建结构良好的Holdem游戏和bot作为其他项目的基础

    扑克牌 我尝试构建结构良好的Holdem游戏和bot作为其他项目的基础。 我打算如何组织这个项目: 我将使这些程序的各个部分尽可能分开,因为我计划以不同的方式将其用于许多项目。 游戏本身: hands.py将检查在任何手...

    C语言经典源代码实例 数据结构 操作系统 图形等

    033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...

    “微机原理与系统设计”课程大作业.doc

    图1 汇编语言程序结构 有了这种结构,用户编写程序时,只需要将要定义的变量填入DATA段,将编写的汇编 语言程序填入CODE段,使程序设计有了清楚的结构。参见教材p103 例4.2 。 二、随机数产生 计算机不会产生绝对...

    详解PHP对数组的定义以及数组的创建方法

    例如,一个数组可能包含州名、邮政编码、考试成绩或扑克牌等元素。 每个实体包含两个项:前面提到的健(key)和值(value)。可以通过查询键来获取其相应的值。这些键可以是数值(numerical) 健或关联(associative...

    详细解析Python中__init__()方法的高级应用

    我们可以通过工厂函数来构建一副完整的扑克牌。这会比枚举所有52张扑克牌要好得多,在Python中,我们有如下两种常见的工厂方法: 定义一个函数,该函数会创建所需类的对象。 定义一个类,该类有创建对象的方法。这...

    200个经典C程序【源码】

    033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...

    C语言常用算法

    033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...

    Design-of-Computer-Programs-Udacity

    第 1 课:赢得扑克牌 设计过程的步骤; 为清晰和通用而开发; 程序正确性的论据; 实验和模拟。 设计权衡; 简单明了。 可分解性和可组合性。 第 2 课:信封背面 信封计算; 何时使用蛮力,何时使用聪明; 斑马拼图...

    C语言源代码实例.rar

    033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...

    经典的C程序220案列

    033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...

    关于C的精粹包含至少200个C语言小程序

    033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...

    C语言220例从易到难源代码

    033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...

    C语言学习实例220例

    033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 第二部分 ...

    unicode技巧:使用unicode字符的功能

    Data.Char.Card :用于处理扑克牌的模块; Data.Char.Chess :一个模块,用于以unicode呈现棋子(和一些变体); Data.Char.Combining :将一个字符与一个(一系列)组合字符(变音符号,几何形状等)组合; Data....

    C语言程序源代码(大集合).rar

    033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...

    200个经典C程序源码小游戏

    033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 ...

    C语言实例解析精粹

    033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...

Global site tag (gtag.js) - Google Analytics