Я пишу программу для бумажных ножниц, в которой есть пользовательский плеер и компьютерный плеер. Я считаю, что все в порядке до функции возврата значения bool. Нужно взять два аргумента (выбор компьютера, выбор игрока) и посмотреть, равны ли они выводу «Tie». Однако я получаю сообщение об ошибке, в котором говорится о необъявленных идентификаторах для моих двух аргументов.
Я попытался изменить его на функцию int вместо bool. и мои операторы bool находятся в main, но это не сработало
#include <iostream>
#include <iomanip>
#include <string>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
int getComputerChoice();
int getPlayerChoice();
bool isTie (int, int);
int main()
{
char choice;
int compChoice;
int plaChoice;
do
{
cout << "ROCK PAPER SCISSORS MENU" << endl;
cout << "--------------------------" << endl;
cout << "p)Play Game" << endl;
cout << "q)Quit" << endl;
cout << "Please enter your choice : " << endl;
cin >> choice;
while (choice != 'p' && choice != 'q')//or if//why &&
{
cout << "Invalid selection. Try again." << endl << endl << endl;
cin >> choice;
}
switch (choice)
{
case 'p':
compChoice = getComputerChoice();
plaChoice = getPlayerChoice();
if (plaChoice == 1)
{
cout << "You chose: Rock" << endl;
}
else if (plaChoice == 2)
{
cout << "You chose: Paper" << endl;
}
else
{
cout << "You chose: Scissors" << endl;
}
if (compChoice == 1)
{
cout << "The computer chose: Rock" << endl;
}
else if (compChoice == 2)
{
cout << "The computer chose: Paper" << endl;
}
else
{
cout << "The computer chose: Scissors" << endl;
}
if (isTie(compChoice, plaChoice))
{
cout << "It is a Tie!";
}
break;
case 'q':
cout << "You have chosen to quit the program. Thank you for using the program!" << endl;
break;
}
} while (choice != 'q');
return 0;
}
int getComputerChoice()
{
int comp = 0;
int rando = 0;
srand((unsigned int)time(NULL));
rando = rand() % 3 + 1;
switch (rando)
{
case 1:
comp = 1;
break;
case 2:
comp = 2;
break;
case 3:
comp= 3;
break;
return comp;
}
}
int getPlayerChoice()
{
int player;
cout << "Rock, Paper or Scissors?" << endl;
cout << "1) Rock" << endl;
cout << "2) Paper" << endl;
cout << "3) Scissors" << endl;
cout << "Please enter your choice: " << endl;
cin >> player;
while (player != 1 && player != 2 && player != 3)
{
cout << "Invalid" << endl;
cin >> player;
}
return player;
}
bool isTie(compu, playa)
{
if (compu == playa)
return true;
else
return false;
}
Это сообщения об ошибках, которые я получаю compu ': undeclared identifier playa': undeclared identifier 'isTie': redefinition;предыдущее определение было «функцией», см. объявление «isTie» «isTie»: инициализатор в стиле функции выглядит как определение функции