2021-Draw not possible
Actual Code
public static void DisplayEndMessages(Player player1, Player player2)
{
Console.WriteLine();
Console.WriteLine(player1.GetName() + " final state: " + player1.GetStateString());
Console.WriteLine();
Console.WriteLine(player2.GetName() + " final state: " + player2.GetStateString());
Console.WriteLine();
if (player1.GetVPs() > player2.GetVPs())
{
Console.WriteLine(player1.GetName() + " is the winner!");
}
else
{
Console.WriteLine(player2.GetName() + " is the winner!");
}
}
Issue
When a game is finished, the code above is used to display the outcome of the game. The original code checks to see if player1 VP's are greater than player2 VP's, however if the VP's are the same player2 is declared the winner.
Solution
We need to adapt the if..else statement by adding an 'else if':
if (player1.GetVPs() > player2.GetVPs())
{
Console.WriteLine(player1.GetName() + " is the winner!");
}
else
{
Console.WriteLine(player2.GetName() + " is the winner!");
}
Will become:
if (player1.GetVPs() > player2.GetVPs())
{
Console.WriteLine(player1.GetName() + " is the winner!");
}
else if (player1.GetVps() == player2.GetVPs())
{
Console.WriteLine("Its a draw!");
}
else
{
Console.WriteLine(player2.GetName() + " is the winner!");
}