我在玩扑克,碰壁了。任何帮助都是最好的。
我有12张纸币。这些值是char 2-9或TJQKA (如下所示)。我需要将它们传递给一个整型数组,这样它们的值就是传递的值(无论是整型值还是枚举值),而不是它们的ASCII。
对于下面的示例,我想要:
val[5] = {2,5,10,12,11}而不是:
val[5] = {50,53,84,81,74}enum cardvalues {T=10 , J , Q , K , A}
int val[5];
string value = "25TQJ";
for (int i = 0; i < 5; i++)
{
val[i] = value[i];
}发布于 2011-10-23 03:42:42
您需要一个转换函数:
int to_card(const char v)
{
switch(v)
{
case '2': return 2;
case '3': return 3:
// etc...
case 'T': return 10;
case 'J': return 11;
// etc...
}然后在你的循环中:
val[i] = to_card(value[i]);发布于 2011-10-23 03:41:53
我强烈建议使用map而不是枚举。
map<char,int> myCardMap;
myCardMap['T'] = 10;
...
val[i] = myCardMap[value[i]];发布于 2011-10-23 03:44:19
使用键中的ASCII值和值中的枚举值创建一个std::map
std::map<char, int> asciiMap;
asciiMap['T'] = 10;
asciiMap['J'] = 11;
//etc....然后将字符与地图进行匹配
https://stackoverflow.com/questions/7862092
复制相似问题