41 - 1) Reescreve o método RockPaperScissors
de modo a que siga as melhores
práticas de legibilidade de código, nomeadamente que tenha apenas um único
return
no fim. 2) Escreve um método Main
para testar o método
RockPaperScissors
, nomeadamente pedindo ao jogador um para selecionar uma
opção (ROCK
, PAPER
ou SCISSORS
), ao jogador dois para fazer o mesmo, e
apresentando depois o resultado do jogo. 3) Integra os métodos Main
e
RockPaperScissors
numa classe chamada RPSGame
, namespace LP1Exercises
.
using System;
namespace LP1exercises
{
class RPSGame
{
// Constant variables
const int ROCK = 1;
const int PAPER = 2;
const int SCISSORS = 3;
const int DRAW = 0;
const int P1WIN = 1;
const int P2WIN = 2;
static void Main(string[] args)
{
// Variables
string choiceP1String;
string choiceP2String;
int choiceP1;
int choiceP2;
// Ask users for ROCK, PAPER or SCISSORS
// Player 1
Console.WriteLine("PLAYER 1 --> ROCK=1\t PAPER=2\t SCISSORS=3\n Choose: ");
choiceP1String = Console.ReadLine();
choiceP1 = Convert.ToInt32(choiceP1String);
// Player 2
Console.WriteLine("\nPLAYER 2 --> ROCK=1\t PAPER=2\t SCISSORS=3\n Choose: ");
choiceP2String = Console.ReadLine();
choiceP2 = Convert.ToInt32(choiceP2String);
// Call method
if (RockPaperScissors(choiceP1, choiceP2) == DRAW)
{
Console.WriteLine("\nDraw!");
}
else if (RockPaperScissors(choiceP1, choiceP2) == P1WIN)
{
Console.WriteLine("\nPlayer 1 won!");
}
else
{
Console.WriteLine("\nPlayer 2 won!");
}
}
static int RockPaperScissors(int player1, int player2)
{
// Variables
int result;
if (player1 == player2)
{
result = DRAW; // Draw
}
else if (((player1 == ROCK) && (player2 == SCISSORS)) ||
((player1 == SCISSORS) && (player2 == PAPER)) ||
((player1 == PAPER) && (player2 == ROCK)))
{
result = P1WIN; // Player 1 wins
}
else
{
result = P2WIN; // Player 2 wins
}
return result;
}
}
}
Por Lucas Viana