使用结构定义一副扑克牌,并对变量赋值
扑克牌有四种花色:草花,方块,红心和黑桃,可将花色说明为枚举类型。扑克牌类型为结构类型,包含两个成分:分别存储牌的花色和牌的面值,其中面值为字符数组。
下面是代码的实现部分:
#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)中,每个学生及其成绩是一个数据元素,其中数据元素由学号、姓名、各科成绩及...
牌的表示和初始化:定义一套扑克牌的数据结构,可以使用数字或字符表示每张牌,例如使用数字1-54或字符2-3A等。然后,初始化一副完整的牌,并进行洗牌操作。 发牌和牌局管理:根据游戏规则,按照特定的发牌顺序将牌...
扑克牌 我尝试构建结构良好的Holdem游戏和bot作为其他项目的基础。 我打算如何组织这个项目: 我将使这些程序的各个部分尽可能分开,因为我计划以不同的方式将其用于许多项目。 游戏本身: hands.py将检查在任何手...
033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...
图1 汇编语言程序结构 有了这种结构,用户编写程序时,只需要将要定义的变量填入DATA段,将编写的汇编 语言程序填入CODE段,使程序设计有了清楚的结构。参见教材p103 例4.2 。 二、随机数产生 计算机不会产生绝对...
例如,一个数组可能包含州名、邮政编码、考试成绩或扑克牌等元素。 每个实体包含两个项:前面提到的健(key)和值(value)。可以通过查询键来获取其相应的值。这些键可以是数值(numerical) 健或关联(associative...
我们可以通过工厂函数来构建一副完整的扑克牌。这会比枚举所有52张扑克牌要好得多,在Python中,我们有如下两种常见的工厂方法: 定义一个函数,该函数会创建所需类的对象。 定义一个类,该类有创建对象的方法。这...
033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...
033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...
第 1 课:赢得扑克牌 设计过程的步骤; 为清晰和通用而开发; 程序正确性的论据; 实验和模拟。 设计权衡; 简单明了。 可分解性和可组合性。 第 2 课:信封背面 信封计算; 何时使用蛮力,何时使用聪明; 斑马拼图...
033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...
033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...
033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...
033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...
033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 第二部分 ...
Data.Char.Card :用于处理扑克牌的模块; Data.Char.Chess :一个模块,用于以unicode呈现棋子(和一些变体); Data.Char.Combining :将一个字符与一个(一系列)组合字符(变音符号,几何形状等)组合; Data....
033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...
033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 ...
033 扑克牌的结构表示 034 用“结构”统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 ...