I am updating my post to include more of the code and cleaned up the function hopefully.
I am trying to write a function for the computer to keep calling a play in a do while loop (which I am assuming is correct) with a pause in between and for the menu to be brought up to the user after each selection from the playbook function that contains the playbook menu. I am not an expert with the cin operator, but my playbook function works perfectly when the user is entering the plays but the cursor hangs when it is calling the function_cpu (computer) for the computer to make the selection. I am sure I am missing something in the code here. I put some notes in the code below.
int playbook(int &playbook_choice) {
cout << "Please choose a play from the options below : " << endl;
cout << "================================================" << endl;
cout << "1." << plays[0] << endl;
cout << "2." << plays[1] << endl;
cout << "3." << plays[2] << endl;
cout << "4." << plays[3] << endl;
cout << "5." << plays[4] << endl;
cout << "6." << plays[5] << endl;
cout << "7." << plays[6] << endl;
cout << "8." << plays[7] << endl;
cout << "9." << plays[8] << endl;
cout << "10." << plays[9] << endl;
cout << "11." << plays[10] << endl;
cout << "12." << plays[11] << endl;
cout << "13." << plays[12] << endl;
cout << "14." << plays[13] << endl;
cout << "15." << plays[14] << endl;
cout << "16." << plays[15] << endl;
cout << "17." << plays[16] << endl;
cout << "18." << plays[17] << endl;
cout << "19." << plays[18] << endl;
cin >> playbook_choice;
do {
switch (playbook_choice) {
case 1:
cout << "You selected the" << " " << plays[0] << " " << "play" << endl;
break;
case 2:
cout << "You selected the" << " " << plays[1] << " " << "play" << endl;
break;
case 3:
cout << "You selected the" << " " << plays[2] << " " << "play" << endl;
break;
case 4:
cout << "You selected the" << " " << plays[3] << " " << "play" << endl;
break;
case 5:
cout << "You selected the" << " " << plays[4] << " " << "play" << endl;
break;
case 6:
cout << "You selected the" << " " << plays[5] << " " << "play" << endl;
break;
case 7:
cout << "You selected the" << " " << plays[6] << " " << "play" << endl;
break;
case 8:
cout << "You selected the" << " " << plays[7] << " " << "play" << endl;
break;
case 9:
cout << "You selected the" << " " << plays[8] << " " << "play" << endl;
break;
case 10:
cout << "You selected the" << " " << plays[9] << " " << "play" << endl;
break;
case 11:
cout << "You selected the" << " " << plays[10] << " " << "play" << endl;
break;
case 12:
cout << "You selected the" << " " << plays[11] << " " << "play" << endl;
break;
case 13:
cout << "You selected the" << " " << plays[12] << " " << "play" << endl;
break;
case 14:
cout << "You selected the" << " " << plays[13] << " " << "play" << endl;
break;
case 15:
cout << "You selected the" << " " << plays[14] << " " << "play" << endl;
break;
case 16:
cout << "You selected the" << " " << plays[15] << " " << "play" << endl;
break;
case 17:
cout << "You selected the" << " " << plays[16] << " " << "play" << endl;
break;
case 18:
cout << "You selected the" << " " << plays[17] << " " << "play" << endl;
break;
case 19:
cout << "You selected the" << " " << plays[18] << " " << "play" << endl;
break;
case 0:
std::exit(0);
break;
default:
cout << "Invalid selection!!! , Please enter a number from 1-19 to choose a play!" << endl;
break;
}
} while (playbook_choice > 19 || playbook_choice < 1);
return playbook_choice;
}
int function_CPU(int &cpu_random_play) {
// want this function to keep to looping and the cpu keep calling plays until downs > 4 -- with a pause in between
// so the end user can see what the cpu is calling
do {
//have CPU call a random play from the list -- not dependent on down and distance or offense/defense attribution
srand((unsigned)time(NULL));
//generate random 1 or 2 -- either qb sneak or off guard run
cpu_random_play = rand() % 2 + 1;
//calls this function which has a menu to a choose but then stops at the cin prompt
//from within that function
//for the player 1 function works perfectly but when the cpu is trying to access cin, prompt is
//waiting for user input and doesnt get the cpu input
playbook(playbook_choice);
//??? How to make the CPU automatically select a play!!!!!!!!
if (cpu_random_play == 1) {
//chooses the play 1 from the playbook menu
playbook_choice = 1;
playbook_qb_sneak(result, down, yards_to_go);
}
if (cpu_random_play == 2) {
//chooses the play 2 from the playbook menu
playbook_choice = 2;
off_guard_run(result, down, yards_to_go);
}
}while (player_control == 2 && down <= 4);
return cpu_random_play;
}
int
. \$\endgroup\$playbook(...)
? \$\endgroup\$