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