0
card highCard ()
{
    card highest_card;
    int number=0;

    for (int i =0; i <5; i++)
    {
        if (_cards[i].getRankValue > number)
        {
            number = _cards[i].getRankValue;
            highest_card = _cards[i];
        }
        return highest_card;
    }
}

我不确定我做错了什么,或者更像是我在做什么。我想在扑克游戏中找到我手中最高的牌(包括花色和等级)。

4

2 回答 2

5

你所拥有的一切看起来都很好,只是你回来得太早了。看完手上的所有牌,你想回来。正如您现在所拥有的,您的函数在返回之前只会查看 _cards[0] 。

card highCard ()
{
  card highest_card;
  int number=0;

  for (int i =0; i <5; i++)
  {
     if (_cards[i].getRankValue > number)
     {
         number = _cards[i].getRankValue;
         highest_card = _cards[i];
     }    
  }
  return highest_card;
}
于 2013-09-17T00:23:33.833 回答
5

您在 for 循环中返回卡片。基本上,代码在 i=0 处运行循环,然后立即返回它——当 i 为 1 或更高时,它永远不会运行代码。将 return 行放在 for 循环之后,以便确保程序在返回最高卡片之前运行所有卡片。

于 2013-09-17T00:23:54.167 回答