I'm trying to combine two of my codes namely, rock-paper-scissor(PlayerVsPlayer)(PlayerVsAI) but I can't seem to loop each games separately(loop the game again if Y) from Main Menu where it will all start (separate loop to main menu if N) please help me, I tried explaining all of their functions

//This is the code of the Player vs Player:

include <iostream>

include <conio.h>

const char ROCK = 'r'; const char PAPER = 'p'; const char SCISSORS = 's'; using namespace std; void Option(char move) { //to change the letter r,p and s to ROCK,PAPER or SCISSORS switch (move) { case 'r': break; case 'p': break; case 's': break; } } void Option_1(char pick){ switch (pick) { case 'r': cout << "ROCK\n"; break; case 'p': cout << "PAPER\n"; break; case 's': cout << "SCISSORS\n"; break; } } char User_1_input() { cout << "***********************Jack-En-Poy**************************************\nChoose one of the following options\nr = ROCK\np = PAPER\ns = SCISSORS\nPlayer 1: "; char user = 'x'; while (user != 'r' && user != 'p' && user != 's') {//to only accept r,p and s letters user = getch(); Option(user); } return user; }

char User_2_input() { cout << "\nPlayer 2: "; char user2 = 'x'; while (user2 != ROCK && user2 != PAPER && user2 != SCISSORS) { user2 = getch(); Option_1(user2); } return user2; } void Check_Winner(char user_1, char user_2, int & p1, int & p2) { if (user_1 == PAPER && user_2 == ROCK || user_1 == SCISSORS && user_2 == PAPER || user_1 == ROCK && user_2 == SCISSORS) { p1++; cout << "Player 1 Wins!\n"; } else if (user_1 == SCISSORS && user_2 == ROCK || user_1 == ROCK && user_2 == PAPER || user_1 == PAPER && user_2 == SCISSORS) { p2++; cout << "Player 2 Wins!\n"; } else { cout << "It's a TIE!\n"; } cout << "******************************************************************************\n"; } void Tabulate_Scores(int & p1, int & p2) { cout << "Player 1 = " << p1 << endl; cout << "Player 2 = " << p2 << endl; } int main() { char loop = true, user_1, user_2; int p1 = 0, p2 = 0, rs = 0; while (loop) { int p1 = 0, p2 = 0; cout << "How many rounds do you want to play? "; cin >> rs; system("cls"); for (int r = 1; r <= rs; r++) { cout << "\nRound: " << r << "/" << rs << endl; user_1 = User_1_input(); user_2 = User_2_input(); Check_Winner(user_1, user_2, p1, p2); Tabulate_Scores(p1, p2); } cout << "\nY = to play again\nN = to exit\nDo you want to play again(Y/N)? "; cin >> loop; switch (loop) { case 'Y': loop = true; break; case 'N': loop = false; break; } system("cls"); } }

//Player vs Computer:

include <iostream>

include<conio.h>//to be able to use the getch()function

include<ctime>//for the computer's choice in case it errors

const char ROCK = 'r'; const char PAPER = 'p'; const char SCISSORS = 's'; using namespace std;

void Option(char move) { //to change the letter r,p and s to ROCK,PAPER or SCISSORS switch (move) { case 'r': cout << "ROCK\n"; break; case 'p': cout << "PAPER\n"; break; case 's': cout << "SCISSORS\n"; break; } } char Player_Choice() { cout << "***********************Jack-En-Poy**************************************\nChoose one of the following options\nr = ROCK\np = PAPER\ns = SCISSORS\n"; cout << "Your choice is: \n"; char user = 'x'; while (user != 'r' && user != 'p' && user != 's') {//to only accept r,p and s letters user = getch(); Option(user); } return user; } char Computer_Choice() { srand(time(0)); int num = rand() % 3 + 1; switch (num) { case 1: return 'r'; case 2: return 'p'; case 3: return 's'; } return num; }

void Winner(char user, char computer, int & player_score, int & computer_score) { //to announce who is the winner and tally the score if (computer == PAPER and user == ROCK || computer == SCISSORS and user == PAPER || computer == ROCK and user == SCISSORS) { computer_score++; cout << "Computer Wins!\n"; } else if (user == ROCK && computer == SCISSORS || computer == ROCK && user == PAPER || computer == PAPER && user == SCISSORS) { player_score++; cout << "\nYou Win!\n"; } else { cout << "It's a TIE!\n"; } cout << "*****************************************************************************"; } void Score(int &player_score, int & computer_score) { cout << "\nPlayer score = " << player_score << "\n"; cout << "\nComputer score = " << computer_score << "\n\n"; } int main() { int player_score = 0, computer_score = 0, rounds = 0; char user, computer,loop = true; while (loop) { int player_score = 0, computer_score = 0; cout << "How many rounds do you want to play? "; cin >> rounds; /to ask the user how many rounds he/she wants to play*/ system("cls"); for (int round = 1; round <= rounds; round++) { cout << "\nRound: " << round << "/" << rounds << endl; user = Player_Choice(); cout << "Computer's choice is: \n"; computer = Computer_Choice(); Option(computer); Winner(user,computer,player_score, computer_score); Score(player_score, computer_score); } cout << "\nY = to play again\nN = to exit\nDo you want to play again(Y/N)? "; cin >> loop; switch (loop) { case 'Y': loop = true; break; case 'N': loop = false; break; } system("cls"); } }

/r/cpp_questions Thread