Difference between revisions of "Add the ability to set the player names"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
Line 24: Line 24:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Just swap "Player One" and "Player Two" with your variables for the player's names.
+
Just swap "Player One" and "Player Two" with your variables for the player's names, like so:
  
 
<syntaxhighlight lang=Csharp>
 
<syntaxhighlight lang=Csharp>
Line 36: Line 36:
 
                 HaveTurn(PlayerTwoName, ref PlayerTwoTiles, ref PlayerTwoTilesPlayed, ref PlayerTwoScore, TileDictionary, ref TileQueue, AllowedWords, MaxHandSize, NoOfEndOfTurnTiles);
 
                 HaveTurn(PlayerTwoName, ref PlayerTwoTiles, ref PlayerTwoTilesPlayed, ref PlayerTwoScore, TileDictionary, ref TileQueue, AllowedWords, MaxHandSize, NoOfEndOfTurnTiles);
 
             }
 
             }
 +
</syntaxhighlight>
 +
 +
A few changes also need to be made to DisplayWinner.
 +
 +
<syntaxhighlight lang=Csharp>
 +
{
 +
            Console.WriteLine();
 +
            Console.WriteLine("**** GAME OVER! ****");
 +
            Console.WriteLine();
 +
            Console.WriteLine(PlayerOneName + ", your score is " + PlayerOneScore);
 +
            Console.WriteLine(PlayerTwoName + ", your score is " + PlayerTwoScore);
 +
            if (PlayerOneScore > PlayerTwoScore)
 +
            {
 +
                Console.WriteLine(PlayerOneName + " wins!");
 +
            }
 +
            else if (PlayerTwoScore > PlayerOneScore)
 +
            {
 +
                Console.WriteLine(PlayerTwoName + " wins!");
 +
            }
 +
            else
 +
            {
 +
                Console.WriteLine("It is a draw!");
 +
            }
 +
            Console.WriteLine();
 +
        }
 
</syntaxhighlight>
 
</syntaxhighlight>

Revision as of 10:26, 20 November 2017

Somewhere near the top of HaveTurn, while you're declaring variables, you'll want to add the following code:

// something here...
            Console.WriteLine("Player One, input your name:");
            string PlayerOneName = Convert.ToString(Console.ReadLine());
            Console.WriteLine("Player Two, input you name:");
            string PlayerTwoName = Convert.ToString(Console.ReadLine());
// something here...

Lower down, there's a while loop that looks like this:

while (PlayerOneTilesPlayed <= MaxTilesPlayed && PlayerTwoTilesPlayed <= MaxTilesPlayed && PlayerOneTiles.Length < MaxHandSize && PlayerTwoTiles.Length < MaxHandSize)
            {
                HaveTurn("Player One", ref PlayerOneTiles, ref PlayerOneTilesPlayed, ref PlayerOneScore, TileDictionary, ref TileQueue, AllowedWords, MaxHandSize, NoOfEndOfTurnTiles);
                Console.WriteLine();
                Console.WriteLine("Press Enter to continue");
                Console.ReadLine();
                Console.WriteLine();
                HaveTurn("Player Two", ref PlayerTwoTiles, ref PlayerTwoTilesPlayed, ref PlayerTwoScore, TileDictionary, ref TileQueue, AllowedWords, MaxHandSize, NoOfEndOfTurnTiles);
            }

Just swap "Player One" and "Player Two" with your variables for the player's names, like so:

while (PlayerOneTilesPlayed <= MaxTilesPlayed && PlayerTwoTilesPlayed <= MaxTilesPlayed && PlayerOneTiles.Length < MaxHandSize && PlayerTwoTiles.Length < MaxHandSize)
            {
                HaveTurn(PlayerOneName, ref PlayerOneTiles, ref PlayerOneTilesPlayed, ref PlayerOneScore, TileDictionary, ref TileQueue, AllowedWords, MaxHandSize, NoOfEndOfTurnTiles);
                Console.WriteLine();
                Console.WriteLine("Press Enter to continue");
                Console.ReadLine();
                Console.WriteLine();
                HaveTurn(PlayerTwoName, ref PlayerTwoTiles, ref PlayerTwoTilesPlayed, ref PlayerTwoScore, TileDictionary, ref TileQueue, AllowedWords, MaxHandSize, NoOfEndOfTurnTiles);
            }

A few changes also need to be made to DisplayWinner.

{
            Console.WriteLine();
            Console.WriteLine("**** GAME OVER! ****");
            Console.WriteLine();
            Console.WriteLine(PlayerOneName + ", your score is " + PlayerOneScore);
            Console.WriteLine(PlayerTwoName + ", your score is " + PlayerTwoScore);
            if (PlayerOneScore > PlayerTwoScore)
            {
                Console.WriteLine(PlayerOneName + " wins!");
            }
            else if (PlayerTwoScore > PlayerOneScore)
            {
                Console.WriteLine(PlayerTwoName + " wins!");
            }
            else
            {
                Console.WriteLine("It is a draw!");
            }
            Console.WriteLine();
        }