我为扑克游戏制作游戏,现在有52张牌的阵列
int cards[52] = {1, 1, 1, 1, etc etc etc...}
但是,我希望每次出现1或者11或12或13时,字母看起来像A,J,Q和K而不是那些数字。
我目前有部分代码(仍未完成)但仍然使用1,2,3,4,5,6 ... 13的数组继续执行所有操作,因此我不希望从一开始就重新启动
P.S。:我目前对编程很陌生,所以像初学者一样解释会有很多帮助!!
P.S。:问题是我不知道该怎么做
我的一个子功能
for (l = 0; l < 52; l++) //For loop del swap para barajear la baraja
{
x = rand() % 52;
y = rand() % 52;
int temp = cards[x];
cards[x] = cards[y];
cards[y] = temp;
char *temp1 = symbols[x];
symbols[x] = symbols[y];
symbols[y] = temp1;
}
如何制作,以便如果我打印cards[1]
并且交换后cards[1]
的值为1
,我怎样才能打印'A'
而不是1
答案 0 :(得分:1)
只需使用另一个阵列。
char ranks[] = { 0, 'A', '2', '3', ..., 'J', 'Q', 'K'};
然后正常访问它。
答案 1 :(得分:1)
创建数组letters
以存储卡名称。然后,您可以使用letters[card]
访问该阵列。
作为简写,您可以将单个char
值写为一个字符串:
char letters[] = "XA234567890BDK";
请注意,第一个字母的索引将自动为零。如果您希望卡片“两个”成为索引2
,则必须使用虚拟角色填充第一个位置。
考虑到你的第二个问题(改组),你可以完全省略数组symbols
。只需在实际需要时从letters
查找关联的符号。
答案 2 :(得分:0)
使用数组:
char card_names[] = { 'A', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'K', 'Q' };
然后您可以使用card_names[card_value]
。