我正在编写一个二十一点程序,但我的问题是创建一个具有其他对象列表的对象时的解决方案,但是当我首先创建对象时,列表为空.我想这就是我收到这个错误的原因.下面是我的代码,我将播放器初始化为在播放器的构造函数中有一个手的实例,但是当我调用方法playerHand.Hit(card)时,我得到"对象引用未设置为对象的实例"错误消息;
public class Player
{
private string name;
public Hand playerHand;
public Player()
{ }
public Player(string name)
{
this.Name = name;
this.playerHand = new Hand();
}
public string Name
{
get { return name; }
set { name = value; }
}
public void TakeCard(Card card)
{ playerHand.Hit(card); }`
Run Code Online (Sandbox Code Playgroud)
`
public class Hand
{
public List<Card> hand;
public Hand()
{
hand = new List<Card>();
}
public int handValue;`
public void Hit(Card card)
{
hand.Add(card);
}
public int HandValue()
{ …Run Code Online (Sandbox Code Playgroud) 我正在创建一副卡片,并在Enums中使用我的Suits和Values,但是我的语法在尝试填充我的List套牌时没有.另外,Ace可以具有1或11的值,是否有某种方法可以将其合并到我的Enum中,或者我是否需要在执行诸如为二十一点求手之类的事情时编写代码?
public class Deck
{
private List<Card> cards;
private Random random = new Random();
public Deck()
{
cards = new List<Card>();
for (int s = 0; s < 4; s++)
//for (int v = 0; v < 14; v++)
foreach(Enum v in Values)
cards.Add(new Card((Suits)s, (Values)v));
}
Run Code Online (Sandbox Code Playgroud)
这是我的诉讼和价值的枚举:
public enum Suits
{
Spades,
Clubs,
Diamonds,
Hearts
}
public enum Values
{
Ace = 1,
Two = 2,
Three = 3,
Four = 4,
Five = 5,
Six = 6,
Seven …Run Code Online (Sandbox Code Playgroud)