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)); }
//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); }
/// <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); } }
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); }
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"); } }
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(); }
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! # # # "); } } }
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; } }
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(); }
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); } }
/// <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(); }
private void RefreshActiveCards() { SetCard(Player1Cards.FirstOrDefault(), EPlayer.Player1); SetCard(Player2Cards.FirstOrDefault(), EPlayer.Player2); }
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)); }