不能将int类型隐式转换为bool

时间:2014-12-08 01:18:35

标签: c#

我正在创造一个二十一点游戏,到目前为止,我已经制作了一个卡片类,甲板课和鞋类。卡类工作甲板类工程,鞋类工作,但我仍在我的手工作。我创建了一个GetSum方法,通过调用SymbolToValue方法返回手中卡片的总和,以获取每个卡片符号的值并添加值。但是我的SymbolToValue方法一直给我错误,不能隐式地将int类型转换为bool。我不知道如何解决这个问题。

理解正确方向的任何帮助或指导

这是我手工课上的内容

class Hand
{
    const Int32 MAX_CARDS = 12;
    private Card[] _hand = new Card[MAX_CARDS];
    private Int32 _cardCount;
    public Hand()
    {
        _cardCount = 0;
    }
    public Int32 CardCount
    {
        get
        {

            return _cardCount;
        }
    }
    public void AddCard(Card card)
    {

        if (_cardCount < MAX_CARDS)
        {
            throw new Exception("Cannot of more than 12 cards in a hand");
        }
        else
        {
            _hand.Add(card);
            _cardCount++;


        }
    }
    public Card GetCard(Int32 cardIndex)
    {
        if (cardIndex >= _cardCount)
        {
            throw new Exception("Invalid Entry");
        }
        else
        {
            return _hand[cardIndex];
        }
    }
    Int32[] cardValues = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10 };
    String[] cardSymbols = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
    private Int32 SymbolToValue(String symbol)
    {
        int index = Array.IndexOf(cardSymbols, symbol);
        if (index != -1)
        {
            return cardValues[index];
        }
        else
        {
            throw new Exception("Value Not In Table");
        }
    }
   public Int32 GetSum()
    {
       String symbol;
       Int32 value;        
       for(value = 0; SymbolToValue(symbol); value++)
       {
           return value;
       }

    }
}

2 个答案:

答案 0 :(得分:0)

看起来你正试图迭代手来获得总和,试试这个以获取你的GetSum:

public Int32 GetSum()
{
   int value = 0;

   for(int i = 0; i < _hand.length; i++)
   {
       value += SymbolToValue(_hand[i]);
   }

   return value;
}

答案 1 :(得分:0)

您正在for循环中使用int32函数,其中应该存在条件。

在您的示例中,for循环期望布尔值为true / false,无论是在循环中执行代码还是继续执行。

为了使您的代码有效,您需要一个条件才能出现。

实施例

for(value = 0; value > SymbolToValue(symbol); value++)
{
  //your stuff
}

如果变量'value'的值是提供的条件,则继续,否则循环直到条件为真。这不是您的答案,但会解决您所面临的问题。

相关问题