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)); }
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(); }
private bool ShouldStartSubGame() { return(Player1Cards.First() <= (Player1Cards.Count() - 1) && Player2Cards.First() <= (Player2Cards.Count() - 1)); }