Я просто пробую разные вещи, кодирующие игру «камень, бумага, ножницы», используя класс / функции. Все работает просто отлично, за исключением отображения результатов того, сколько раз выиграл пользователь, выиграл компьютер и количество связей.
Я кодирую это в vs-code. Я посмотрел несколько примеров того, как вернуть более одного значения, и нашел это полезным. В настоящее время я использую указатели для этого метода, однако я не уверен, ограничен ли он в зависимости от результата кода.
void winner(int* U, int* C, int* T)
{
*U = userWin
*C = compWins;
*T = numTies;
if(compChoice == userChoice){
std::cout << "It's a tie!\n";
numTies++;
}
else if(userChoice == 'P' && compChoice == 'R'){
std::cout << "You win! Paper covers rock.\n";
userWins++;
}
else if(userChoice == 'S' && compChoice == 'R'){
std::cout << "Computer wins! Rock beats scissors.\n";
compWins++;
}
else if(userChoice == 'S' && compChoice == 'P'){
std::cout << "You win! Scissors beats paper.\n";
userWins++;
}
else if(userChoice == 'R' && compChoice == 'P'){
std::cout << "Computer wins! Paper covers rock.\n";
compWins++;
}
else if(userChoice == 'R' && compChoice == 'S'){
std::cout << "You win! Rock beats scissors.\n";
userWins++;
}
else if(userChoice == 'P' && compChoice == 'S'){
std::cout << "Computer wins! Scissors beats paper.\n";
compWins++;
}
else std::cout << "Invalid input.\n";
std::cout << "\n";
}
int main(){
rps obj;
char char1('y');
int userWins;
int compWins;
int numTies;
std::cout << "THIS IS A GAME OF ROCK, PAPER, SCISSORS!\n";
do{
obj.player();
obj.computer();
obj.winner(&userWins, &compWins, &numTies);
std::cout << "Enter y to play again or anything else to win: ";
std::cin >> char1;
std::cout << "\n";
}while(char1 == 'y' || char1 == 'Y' );
obj.results();
...
Please enter Rock, Paper, or Scissors - 'R' for Rock, 'P' for Paper, 'S' for Scissors: R
The computer chose scissors.
You win! Rock beats scissors.
Enter y to play again or anything else to win: n
Here are the results...
YOU: 1 COMPUTER: -416437631 TIES: 32769
В результате выполнения кода выводятся ожидаемые значения того, сколько раз выиграл пользователь. Тем не менее, кажется, распечатывает ячейки памяти для компьютера число побед и количество связей.