In: Computer Science
Write a C++ program to score the paper-rock-scissor game. Each of two players (player1 and player2) input a character which could be either ‘P’, ‘R’, or ‘S’ (in uppercase or lowercase). For any other input character should display a message “Invalid input”. The program then announces who is the winner as well as the basis for determining the winner which could be one of the following: “Paper covers rock”, “Rock breaks scissors”, “Scissors cut paper”, or “Nobody wins”. (Use switch statement)
code in C++ using switch statements
(code to copy)
#include<bits/stdc++.h>
using namespace std;
// C++ program to score the paper-rock-scissor game
//this methods returns 0 if its a tie, 1 if player 1 wins and -1 if player 2 wins
int check_result(char player1, char player2){
        switch(player1){
                case 'p': 
                case 'P': switch(player2){
                        case 'p': 
                        case 'P': switch(player2){
                                //this is Paper vs Paper
                                return 0;
                        }
                        break;
                        case 'r': 
                        case 'R': switch(player2){
                                //this is Paper vs Rock
                                return -1;
                        }
                        break;
                        case 's': 
                        case 'S': switch(player2){
                                //this is Paper vs Scissor
                                return +1;
                        }
                        break;
                }
                break;
                case 'r': 
                case 'R': switch(player2){
                        case 'p': 
                        case 'P': switch(player2){
                                //this is Rock vs Paper
                                return 1;
                        }
                        break;
                        case 'r': 
                        case 'R': switch(player2){
                                //this is Rock vs Rock
                                return 0;
                        }
                        break;
                        case 's': 
                        case 'S': switch(player2){
                                //this is Rock vs Scissor
                                return -1;
                        }       
                        break;
                }
                break;
                case 's': 
                case 'S': switch(player2){
                        case 'p': 
                        case 'P': switch(player2){
                                //this is Scissor vs Paper
                                return -1;
                        }
                        break;
                        case 'r': 
                        case 'R': switch(player2){
                                //this is Scissor vs Rock
                                return 1;
                        }
                        break;
                        case 's': 
                        case 'S': switch(player2){
                                //this is Rock vs Rock
                                return 0;
                        }
                        break;
                }
                break;
        }
}
//this function takes input from user and keeps taking it until it is a valid input
char takeValidInput(int playerNumber){
        //declare variable to take input
        char choice;
        // keep taking input until it is valid 
        do{
                cout<<"Enter Player "<<playerNumber<<" choice P/R/S: "<<endl;
                // take input from user
                cin>>choice;
        }while(choice!='p'&&choice!='r'&&choice!='s'&&
                choice!='P'&&choice!='R'&&choice!='S');
        return choice;
        
}
int main()
{
        cout<<"Welcome to the game of Rock Paper Scissors"<<endl;
        cout<<"Rules are ..."<<endl;
        cout<<"Paper covers rock"<<endl;
        cout<<"Rock breaks scissors"<<endl;
        cout<<"Scissors cut paper"<<endl<<endl;
        //declare variables to take input
        char player1, player2;
        //take player1 input
        player1 = takeValidInput(1);
        player2 = takeValidInput(2);
        
        int result = check_result(player1, player2);
        if(result==0){//its a tie
                cout<<"It's a Tie!"<<endl;
        }else if(result<0){
                cout<<"Winnner is Player 1!"<<endl;
        }else{
                cout<<"Winnner is Player 2!"<<endl;
        }
}
code screenshot

output screenshot
