c++ - 使用数组在 C++ 中创建卡片组数据结构
问题描述
我正在尝试创建一个大小为 52 的数组,其中包含标准扑克牌中的所有卡片。如果不手动初始化每张卡,我将如何做到这一点?
这是我的代码:
int main()
{
int suit;
int face;
int deck[52] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52 };
char suit[4] = { 'D','H','C','S' };
int face[13] = { 1,2,3,4,5,6,7,8,9,10,10,10,10 };
for (int count = 0; count < 52; count++) {
face = deck[count] % 13;
suit = deck[count] / 13;
}
return 0;
}
解决方案
这是一个相当简单的方法,只使用int
s 来表示花色和值。我认为重要的是将面子和价值存储在一起,这样你就没有两个不同的容器来跟踪。
struct Card
{
int suit, value;
};
现在你可以很容易地填满一组卡片:
Card cards[52];
for (int i = 0; i < 52; ++i)
{
cards[i].suit = i % 4; // 4 suits
cards[i].value = i % 13; // 13 values
}
推荐阅读
- facebook-graph-api - 如何获取在 Facebook 群组中发表评论的用户的姓名?
- python-3.x - DjangoRestAPI 过滤列表字段
- node.js - 根据类的字符串名称创建类的实例
- python - 为 matplotlib.pyplot.plot() 生成的每个标记设置连接样式
- c# - 当我在 .NET 5 中运行应用程序时,Serilog 没有创建日志 SQL 表
- java - Spring Boot 中的部分更新查询抛出“BsonInvalidOperationException”
- c++ - boost::spirit 字符串到数组的分隔符
- wordpress - 预定的帖子预览在 wordpress 多站点中的某些子站点上抛出 404
- amazon-web-services - Amazon S3 视频控制栏问题
- docker - 找不到与 scipy docker 匹配的发行版