public Card(string naamin)
public bool IsHidden { get; set; }
public abstract void DrawCard();
public abstract void UpdateCost();
private set { name = value; }
class Centrale : Card, IPointGenerator
public Centrale() : base("Centrale")
public override void DrawCard()
Console.ForegroundColor = ConsoleColor.Yellow;
public int GeneratePoints(int payedmana)
public override void UpdateCost()
private List<Card> cards = new List<Card>();
private set { cards = value; }
for (int i = 0; i < 3; i++)
Centrale nieuweCentrale = new Centrale();
Cards.Add(nieuweCentrale);
for (int i = 0; i < 2; i++)
Hero nieuweHero = new Hero();
for (int i = 0; i < 5; i++)
Land nieuwLand = new Land();
internal int GenerateLandPoint(int keuzeland)
if (Cards[keuzeland] is Land)
return (Cards[keuzeland] as Land).GenerateMana();
return 0; //Dit is geen land!
internal int GenerateHeroPoint(int keuzehero, int mana)
if (Cards[keuzehero] is Hero)
return (Cards[keuzehero] as Hero).GeneratePoints(mana);
return 0; //Dit is geen hero!
foreach (var elem in Cards)
foreach (var elem in Cards)
Land temp = elem as Land;
Hero temp = elem as Hero;
public void GenerateCentralePoints()
foreach (var elem in Cards)
if (!((Centrale)elem).IsHidden)
((Centrale)elem).GeneratePoints(1);
class Hero : Card, IPointGenerator
public Hero() : base("Hero")
public override void DrawCard()
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine(Name + " " + cost);
static Random generator = new Random();
public int GeneratePoints(int payedmana)
return generator.Next(1, cost);
public override void UpdateCost()
public Land() : base("Land")
public override void DrawCard()
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(Name + " " + cost);
public int GenerateMana()
public override void UpdateCost()