using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
public class Deck<T> where T : Card{
private IList<Card> _cards;
public Deck(IList<Card> cards) : base(){
_cards = new List<Card>(cards);
if(_index >= _cards.Count){
var card = _cards[_index];
public int GetRemainingCardsCount(){
return _cards.Count - _index;
public abstract class Card{
public int Number {get; set;}
public Suit Suit {get; set;}
public bool IsVailable {get; set;}
public abstract int Score();
public string Name {get; set;}
public List<Card> Cards {get; set;}
public class Blackjack : Game{
public void ShuffleCards(){
public string Name {get; set;}
public List<Card> Hand {get; set;}