如何使用其他类的方法添加卡(二十一点游戏)?

时间:2015-11-30 07:37:29

标签: c# oop

我正在努力完成我的第一个程序,即二十一点任务。我已经在我的BlackJackDeck类中构建了一堆方法,现在我想在我的程序类中开始实现它们,但是当我尝试添加卡时,我得到一个超出范围异常的参数。我试过做一个userHand.Add,我试过做一个userHand [0] =,但我只是没有实现这个。我猜测我的BlackJackDeck类中的addCard方法存在的大问题。我也尝试使用Cards [0]而不是.Count方法。卡片是此时的随机卡列表。

BlackJackDeck.cs

import java.util.Scanner;
import java.util.Random;

{public static void main(String [] args)
   {
     Scanner MyScan = new Scanner(System.in);
     int Number;
     System.out.println("How many integers do you want in your array?");
     Number = MyScan.nextInt();
     int[] MyArray = new int[Number];

    }//end main
}//end class

计划CS

 public Card addCard()
    {

        Card cardToAdd = Cards[Cards.Count-1];
        Cards.RemoveAt(Cards.Count-1);
        return cardToAdd;
    }

1 个答案:

答案 0 :(得分:2)

addCard()中没有抛出异常。问题出在userHand上。由于列表为空,因此索引0上没有任何内容可以为其分配右侧值,因此它会抛出异常。 Range 这里指的是定义List的值的范围;对于空列表,范围也是空集,因此ArgumentOutOfRangeException所讨论的参数是使用的索引(在这种情况下为0)。要向List添加元素,请使用Add方法:

userHand = new List<Card>();
userHand.Add(blackJackDeck.addCard());
userHand.Add(blackJackDeck.addCard());

在没有看到BlackJackDeck.Cards如何初始化的情况下,我不能说addCard()不会导致异常,但上述情况至少应该解决您{{1}的问题}。