【发布时间】:2015-02-05 18:05:26
【问题描述】:
我正在创建一个二十一点游戏,到目前为止,我已经制作了纸牌类、套牌类和鞋类。卡片类有效,套牌类有效,鞋类有效,但我仍在学习手牌类。我创建了一个方法,如果手中已经有 MAX_CARDS 卡,则会引发异常,否则它将卡添加到手上并增加 _cardCount 但出于某种原因,我的代码 _hand.Add(card) 说
System.Array 不包含 Add 的定义。
任何正确方向的帮助或指导将不胜感激
这是我手牌课的内容
class Hand
{
const Int32 MAX_CARDS = 12;
private Card[] _hand = new Card[MAX_CARDS];
private Int32 _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()
{
int value = 0;
Boolean aceflag;
for (int i = 0; i < _hand.Length; i++)
{
value += SymbolToValue(_hand[i].Value);
if (String.Equals(_hand[i].Value, "A"))
{
aceflag = true;
}
else
{
aceflag = false;
}
if (aceflag == true && value <= 21)
{
value = value + 10;
}
}
return value;
}
}
【问题讨论】:
-
出于某种原因... system.Array 不包含添加的定义。 ...我不确定如何解决这个问题。 It doesn't have an
Addmethod - at best it's gotIList.Addwhich is not supported。使用允许您添加内容的集合。 -
数组的大小是固定的,请改用
List<Card>。 -
这是我看到的与二十一点游戏相同代码的第三个问题。我只是想知道在我们最终实现你的游戏之前会有多少问题
标签: c# arrays compiler-errors