Skip to content

Latest commit

 

History

History
91 lines (77 loc) · 2.61 KB

File metadata and controls

91 lines (77 loc) · 2.61 KB

Pergunta

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.

Soluções

Solução 1

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