如何在C ++中找到扑克中最高的牌?

时间:2013-09-17 00:20:03

标签: c++

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;
    }
}

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

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:5)

你正在for循环中返回卡片。基本上,代码在i = 0运行循环,然后在它之后立即返回 - 它在i为1或更高时从不运行代码。在for循环之后放置返回行,以确保程序在返回最高卡之前运行所有卡。