Итак, как говорится в заголовке этого вопроса, мой Deck.Print()
показывает только то, что были добавлены 2 пик.
Моя теория состоит в том, что по какой-то причине карты, которые создаются в Deck()
, не меняют масть и лицевую сторону карты, поэтому они придерживаются значений по умолчанию перечислений (я предполагаю, что значением по умолчанию является то, что0 в перечислении).
Судя по тому, как я на это смотрю, нужно создать карту, наложить тип Enum на I или F, а затем добавить эту карту в deck.list.Почему это не работает?Спасибо.
class Deck
{
public List<Card> cards = new List<Card>();
public Deck() // Generates all cards in the deck
{
for (int i = 0; i < 4; i++)
{
for (int f = 0; f < 13; f++)
{
Card card = new Card();
card.Suit = (Suit)i;
card.Face = (Face)f;
cards.Add(card);
}
}
}
public void Print() // prints all cards in the deck , used for testing
{
foreach (var card in cards)
{
card.Print();
}
}
}
enum Suit
{
Spades,
Hearts,
Diamonds,
Clovers
}
enum Face
{
Two,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
Ten,
Jack,
Queen,
King,
Ace
}
class Card
{
private Suit suit;
private Face face;
public Suit Suit { get; set; }
public Face Face { get; set; }
public void Print()
{
Console.WriteLine("{0} of {1}", face, suit);
}
}