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));
        }
Пример #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);
        }
Пример #3
0
 /// <summary>
 /// place card on the table from the specified player
 /// </summary>
 /// <param name="playerNum"></param>
 /// <param name="card"></param>
 public void AddCard(int playerNum, Card card)
 {
     if (playerNum == 1)
     {
         Player1Cards.Add(card);
     }
     else
     {
         Player2Cards.Add(card);
     }
 }
Пример #4
0
        public ulong GetWinnerScore()
        {
            ulong score             = 0;
            var   winnerCards       = Player1Cards.Union(Player2Cards).ToList();
            var   cardsInWinnerDeck = winnerCards.Count();

            for (int i = 1; i <= cardsInWinnerDeck; i++)
            {
                score += (ulong)(i * winnerCards[cardsInWinnerDeck - i]);
            }

            return(score);
        }
Пример #5
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");
     }
 }
Пример #6
0
        protected void PlayNormalCombat()
        {
            var p1Card = Player1Cards.First();
            var p2Card = Player2Cards.First();

            if (p1Card > p2Card)
            {
                AddCardsToWinner(p1Card, p2Card, Player1Cards);
            }
            else
            {
                AddCardsToWinner(p2Card, p1Card, Player2Cards);
            }
            RemoveFirstCards();
        }
        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();
        }
Пример #8
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! # # # ");
         }
     }
 }
Пример #9
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;
            }
        }
Пример #10
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();
        }
Пример #11
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);
            }
        }
Пример #12
0
 /// <summary>
 /// give all cards on the table to this player
 /// </summary>
 /// <param name="winner"></param>
 public void Award(Player winner)
 {
     winner.AddCards(Player1Cards); Player1Cards.Clear();
     winner.AddCards(Player2Cards); Player2Cards.Clear();
 }
Пример #13
0
 private void RefreshActiveCards()
 {
     SetCard(Player1Cards.FirstOrDefault(), EPlayer.Player1);
     SetCard(Player2Cards.FirstOrDefault(), EPlayer.Player2);
 }
Пример #14
0
 protected void RemoveFirstCards()
 {
     Player1Cards.RemoveAt(0);
     Player2Cards.RemoveAt(0);
 }
 private void TotalPlayer1VictoryResult()
 {
     Player1Cards = Player1Cards.Union(Player2Cards).ToList();
     Player2Cards = new List <int>();
 }
 private bool ShouldStartSubGame()
 {
     return(Player1Cards.First() <= (Player1Cards.Count() - 1) &&
            Player2Cards.First() <= (Player2Cards.Count() - 1));
 }