Exemple #1
0
        /// <summary>
        /// Constructor with 2 parameters and 1 optional parameter.
        /// </summary>
        /// <param name="numberOfPlayers">Number of players.</param>
        /// <param name="numberOfDecks">Number of decks.</param>
        /// <param name="playerList">(Optional)List with players' names.</param>
        public GameWindow(int numberOfPlayers, int numberOfDecks, List <string> playerList = null)
        {
            InitializeComponent();
            Initialize();
            gameStarted = false;
            CanDraw(false);
            Game = playerList == null ? new Game(numberOfPlayers, numberOfDecks) : new Game(playerList, numberOfDecks);
            UnitOfWork.Players.AddRange(Game.Players);
            UnitOfWork.Decks.Add(Game.MyDeck);
            UnitOfWork.Decks.Add(Game.Discarded);
            UnitOfWork.Games.Add(Game);
            try
            {
                Game.StartGame();
            }
            catch (NotEnoughCardsException)
            {
                MessageBox.Show("There are not enough cards in the deck\nStart a new game", "Not enough cards", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            UnitOfWork.Cards.AddRange(Game.MyDeck.Cards);
            UnitOfWork.Complete();
            UpdateCards(Game.GetCroupier());
            UpdateCards(Game.GetPlayer());
            UpdateDiscarded();
            CheckHand();
            Debug();
#if DEBUG
            txtDebug.Visibility = Visibility.Visible;
#else
            txtDebug.Visibility = Visibility.Collapsed;
#endif
            gameStarted              = true;
            cmbDbSet.ItemsSource     = Enum.GetValues(typeof(cmbDbSets));
            cmbDbSet.SelectedItem    = cmbDbSets.Cards;
            DataBaseShow.ItemsSource = Context.Cards.Local.ToList();
        }