将char分配给int

时间:2012-12-23 17:27:53

标签: c arrays for-loop multidimensional-array poker

我正在制作一个扑克游戏,我有一个随机播放功能(基于其他答案here)。 现在我的问题是,如何将卡的名称分配给数组的每个数字,例如我想要 cartas [3] =“J spades”

我认为在二维数组中,但他认为它们不能有两种不同类型的数据。我希望有人可以帮助我。

/* This is the array, cartas is cards in spanish */
for(i = 0 ; i < 52 ; i++) {
    cartas[i] = i;
}

1 个答案:

答案 0 :(得分:1)

在需要时查找或生成卡的名称 - 无需将其与索引一起存储:

char buffer[32];
int cnum = card % 13;
const char* suits[]={"diamonds", "spades", "clubs", "hearts"};
switch(cnum)
{
    case 0:
        strcpy(buffer, "ace");
        break;
    case 10:
        strcpy(buffer, "jack");
        break;
    case 11:
        strcpy(buffer, "queen");
        break;
    case 12:
        strcpy(buffer, "king");
        break;
    default:
        sprintf(buffer,"%d",cnum+1);
        break;
}
strcat(buffer," of ");
strcat(buffer,suits[card / 13]);