public string Compare(int r = 1) { string winner = ""; if (r == 1) { if (player1.RecentCard.Rank < player2.RecentCard.Rank) { player1.Take(); player1.Remove(); player2.Remove(); winner = player1.Name + " wins. " + player1.Name + ":" + player1.Score + " " + player2.Name + ":" + player2.Score; } else if (player1.RecentCard.Rank > player2.RecentCard.Rank) { player2.Take(); player1.Remove(); player2.Remove(); winner = player2.Name + " wins. " + player1.Name + ":" + player1.Score + " " + player2.Name + ":" + player2.Score; } else if (player1.RecentCard.Rank == player2.RecentCard.Rank) { Console.WriteLine("Draw!"); int drewCard = player1.RecentCard.Rank; if (drewCard < player1.Pile.Count || drewCard < player2.Pile.Count) { player1.Deal(player1.RecentCard.Rank + 1); player2.Deal(player2.RecentCard.Rank + 1); Console.Write(Compare(drewCard)); } else if (player1.Pile.Count != 1 && player2.Pile.Count != 1) { Console.WriteLine("Not enough cards to play. Shuffling>>>"); player1.Shuffle(); player2.Shuffle(); Console.WriteLine("\nPress Any Key to Continue"); } else { Console.WriteLine("\t\t\t\t\tIt is the last card. Game is ending."); player1.Remove(); player2.Remove(); } } } else { if (player1.RecentCard.Rank < player2.RecentCard.Rank) { player1.Take(r + 1); player1.Remove(r + 1); player2.Remove(r + 1); winner = player1.Name + " wins. " + player1.Name + ":" + player1.Score + " " + player2.Name + ":" + player2.Score; } else if (player1.RecentCard.Rank > player2.RecentCard.Rank) { player2.Take(r + 1); player1.Remove(r + 1); player2.Remove(r + 1); winner = player2.Name + " wins. " + player1.Name + ":" + player1.Score + " " + player2.Name + ":" + player2.Score; } else if (player1.RecentCard.Rank == player2.RecentCard.Rank) { Console.WriteLine("Tie again! Shuffling>>>"); player1.Shuffle(); player2.Shuffle(); Console.WriteLine("\nPress Any Key to Continue"); } } return(winner); }