【发布时间】:2013-06-02 01:32:54
【问题描述】:
首先,我还是 C 的新手,所以请告诉我您可以提出的任何建议(尤其是关于处理数组的建议)。
我想在 C 中存储 BlackJack 手牌。我得出的结论是手牌或卡片必须是字符串,因为卡片可以是两个字符:A, J, Q, K 或数字:1, 2.. 10,其中 10实际上应该是一个由两个字符组成的字符串。
现在,我尝试将组成手的牌存储到这样的数组中:
char* hand;
hand[1] = "A";
hand[2] = "2";
问题是10,它占用了数组的两个索引而不是一个。我可以解决这个问题的一种方法是创建一个包含 5 个字符串(21 点手牌中的最大牌数)的结构,每张牌一个。但是,如果我出于某种原因想要拥有数千张牌怎么办?那么存放手的最佳方式是什么?
【问题讨论】:
-
你可以用
"T"来表示10。对于一手牌,你可以用一个数字来表示,而不是一个字母串。 -
我想我没有足够清楚地表达我的意图,但我正试图将我的手打印到一个嵌入式系统项目的 LCD 上。我的 LCD 屏幕非常有限,所以最好打印出 J、Q 或 K,而不是 11、12、13。
-
打印和存储是不同的问题。显然它们不是独立的,但是在选择存储格式时,您需要说明您的要求和约束。您可以将手存储为您希望在屏幕上显示的图像,但在应用程序的其他部分可能不容易阅读和解释。
-
了解 C 的第一件事:永远不要将字符串用于任何事情,除非你真的必须这样做。
标签: c playing-cards blackjack