private RecursiveCombatDay22 CreateSubGame()
        {
            var subsetPlayer1 = Player1Cards.Skip(1).Take(Player1Cards.First()).ToList();
            var subsetPlayer2 = Player2Cards.Skip(1).Take(Player2Cards.First()).ToList();

            return(new RecursiveCombatDay22(subsetPlayer1, subsetPlayer2));
        }
Exemple #2
0
        //check if a player has every card in a list
        //player
        //List<Card>
        public bool HasListOfCard(Player player, IList <Card> lCard)
        {
            bool result = true;

            //check player 1
            if (player == Player.One)
            {
                foreach (Card c in lCard)
                {
                    if (!Player1Cards.Contains(c))
                    {
                        result = false;
                    }
                }
            }
            //check player 2
            else
            {
                foreach (Card c in lCard)
                {
                    if (!Player2Cards.Contains(c))
                    {
                        result = false;
                    }
                }
            }

            return(result);
        }
Exemple #3
0
 private void PlayerHasCard(Player player, Card c)
 {
     if (player == Player.One && !Player1Cards.Contains(c))
     {
         _currentError = ErrorMessage.NotPlayerCard;
         throw new ArgumentException("Player one does not have this card", "player");
     }
     else if (player == Player.Two && !Player2Cards.Contains(c))
     {
         _currentError = ErrorMessage.NotPlayerCard;
         throw new ArgumentException("Player two does not have this card", "player");
     }
 }
        private void PlaySubGame()
        {
            var subGame = CreateSubGame();

            ExecuteSubGame(subGame);

            if (subGame.IsPlayer1Winner())
            {
                AddCardsToWinner(Player1Cards.First(), Player2Cards.First(), Player1Cards);
            }
            else
            {
                AddCardsToWinner(Player2Cards.First(), Player1Cards.First(), Player2Cards);
            }

            RemoveFirstCards();
        }
Exemple #5
0
 public static void Turn()
 {
     using (var stream = new StreamWriter(Path, true))
     {
         if (Player1Cards.Count != 0 && Player2Cards.Count != 0)
         {
             var card1 = Player1Cards.Peek().CardsValue
                         + " " + Player1Cards.Peek().CardsColor;
             var card2 = Player2Cards.Peek().CardsValue
                         + " " + Player2Cards.Peek().CardsColor;
             stream.WriteLine($" Turn {GameLogic.Turn} ");
             stream.WriteLine($" Cards: {card1} and {card2} ");
         }
         else
         {
             stream.WriteLine($" # # # Game Finish! # # # ");
         }
     }
 }
Exemple #6
0
        private void DisplayCards(EPlayer player)
        {
            if (player == EPlayer.Player1)
            {
                Player1 = Player1Cards.FirstOrDefault();

                lblCarNamePlayer1.Text            = Player1.Name;
                lblCarBrandPlayer1.Text           = Player1.Brand;
                lblCodeCardPlayer1.Text           = Player1.Code;
                lblConsumptionPlayer1Value.Text   = Player1.Consumption.ToString();
                lblHorsePowerPlayer1Value.Text    = Player1.HorsePower.ToString();
                lblLengthPlayer1Value.Text        = Player1.Length.ToString();
                lblDisplacementsPlayer1Value.Text = Player1.Displacements.ToString();
                lblMaxSpeedPlayer1Value.Text      = Player1.MaxSpeed.ToString();
                lblPricePlayer1Value.Text         = Player1.Price.ToString();
                //picCardPlayer1.Image = Player1.Image;
                //picCountryPlayer1.Image = Player1.;
                picCarPlayer1.Image = Player1.Image;
            }

            if (player == EPlayer.Player2)
            {
                Player2 = Player2Cards.FirstOrDefault();

                lblCarNamePlayer2.Text            = Player2.Name;
                lblCarBrandPlayer2.Text           = Player2.Brand;
                lblCodeCardPlayer2.Text           = Player2.Code;
                lblConsumptionPlayer2Value.Text   = Player2.Consumption.ToString();
                lblHorsePowerPlayer2Value.Text    = Player2.HorsePower.ToString();
                lblLengthPlayer2Value.Text        = Player2.Length.ToString();
                lblDisplacementsPlayer2Value.Text = Player2.Displacements.ToString();
                lblMaxSpeedPlayer2Value.Text      = Player2.MaxSpeed.ToString();
                lblPricePlayer2Value.Text         = Player2.Price.ToString();
                //picCardPlayer2.Image = Player2.Image;
                //picCountryPlayer2.Visible = Player2IsVisible;
                picCarPlayer2.Image = Player2.Image;
            }
        }
Exemple #7
0
        public void Compare(ECategory category)
        {
            var player1CardActive = Player1Cards.FirstOrDefault();
            var player2CardActive = Player2Cards.FirstOrDefault();

            var winner = CheckTrunfo(player1CardActive, player2CardActive);

            if (winner == EPlayer.Tied)
            {
                if (CurrentPlayer == EPlayer.Player2)
                {
                    MessageBox.Show("Oponente escolheu " + EnumsToString.ToString(category));
                }

                winner = DetermineWinner(category, player1CardActive, player2CardActive);
            }

            TurnCard(EPlayer.Player2);
            Player1Cards.Remove(Player1Cards.FirstOrDefault());
            Player2Cards.Remove(Player2Cards.FirstOrDefault());
            CurrentWinner = winner;
            CurrentPlayer = CurrentWinner == EPlayer.Tied
                ? CurrentPlayer == EPlayer.Player1
                    ? EPlayer.Player2
                    : EPlayer.Player1
                : CurrentWinner;
            AddCardsToWinner(winner, player1CardActive, player2CardActive);
            SetLabelsColors(category, winner);
            Waiting();
            CheckFinish();
            RefreshActiveCards();
            RefreshThumbs();
            RefreshTiedPannel();
            ClearLabels();
            TurnCard(EPlayer.Player2);
            StartRound();
        }
Exemple #8
0
        private void AddCardsToWinner(EPlayer winner, Car player1CardActive, Car player2CardActive)
        {
            if (EPlayer.Player1 == winner)
            {
                Player1Cards.Add(player1CardActive);
                Player1Cards.Add(player2CardActive);
                Player1Cards.AddRange(TiedCards);
                TiedCards = new List <Car>();
            }

            if (EPlayer.Player2 == winner)
            {
                Player2Cards.Add(player2CardActive);
                Player2Cards.Add(player1CardActive);
                Player2Cards.AddRange(TiedCards);
                TiedCards = new List <Car>();
            }

            if (EPlayer.Tied == winner)
            {
                TiedCards.Add(player1CardActive);
                TiedCards.Add(player2CardActive);
            }
        }
Exemple #9
0
 private void RefreshActiveCards()
 {
     SetCard(Player1Cards.FirstOrDefault(), EPlayer.Player1);
     SetCard(Player2Cards.FirstOrDefault(), EPlayer.Player2);
 }
Exemple #10
0
        private void NewCards()
        {
            Player1Cards.Clear();
            Player2Cards.Clear();
            Street.Clear();
            CardsInPlay.Clear();

            AiDrawGuessLabel.Visible    = false;
            AiPlayer1GuessLabel.Visible = false;
            AiPlayer2GuessLabel.Visible = false;

            if (RandomPlayerCards)
            {
                for (int x = 0; x < 2; x++)
                {
                    NewCard = new Card(CardsInPlay);
                    CardsInPlay.Add(NewCard);
                    Player1Cards.Add(NewCard);
                }

                for (int x = 0; x < 2; x++)
                {
                    NewCard = new Card(CardsInPlay);
                    CardsInPlay.Add(NewCard);
                    Player2Cards.Add(NewCard);
                }
            }
            else
            {
                Player1Cards.Add(new Card(Suit.Hearts, Rank.Ace));
                Player1Cards.Add(new Card(Suit.Spades, Rank.Ace));
                CardsInPlay.Add(Player1Cards[0]);
                CardsInPlay.Add(Player1Cards[1]);

                Player2Cards.Add(new Card(Suit.Diamonds, Rank.Ace));
                Player2Cards.Add(new Card(Suit.Diamonds, Rank.King));
                CardsInPlay.Add(Player2Cards[0]);
                CardsInPlay.Add(Player2Cards[1]);
            }

            for (int x = 0; x < 5; x++)
            {
                NewCard = new Card(CardsInPlay);
                CardsInPlay.Add(NewCard);
                Street.Add(NewCard);
            }

            foreach (Card card in CardsInPlay)
            {
                card.LoadImage();
            }

            Player1pictureBox1.Image = Player1Cards[0].Image;
            Player1pictureBox2.Image = Player1Cards[1].Image;

            Player2pictureBox1.Image = Player2Cards[0].Image;
            Player2pictureBox2.Image = Player2Cards[1].Image;

            StreetCard1ImageBox.Image = Street[0].Image;
            StreetCard2ImageBox.Image = Street[1].Image;
            StreetCard3ImageBox.Image = Street[2].Image;
            StreetCard4ImageBox.Image = Street[3].Image;
            StreetCard5ImageBox.Image = Street[4].Image;

            AiResult = winCalc.WhoWins(Player1Cards.Concat(Street).ToList(), Player2Cards.Concat(Street).ToList());
        }
 private bool ShouldStartSubGame()
 {
     return(Player1Cards.First() <= (Player1Cards.Count() - 1) &&
            Player2Cards.First() <= (Player2Cards.Count() - 1));
 }