我正在学习计算机科学入门课程,在下一个项目中,我应该做一个石头,纸,剪刀游戏。
游戏还没有结束,因为我仍然需要添加得分保持和输入建议(哦,我应该选择的次数更多)并循环播放。
但是我的问题是,我想测试游戏到现在为止是否正常运行。该代码可以正确编译,但是一旦我输入了我的决定并且计算机输入了它的决定,“赢家”就是不正确的。
例如:
玩家选择摇滚
计算机选择剪刀
这是TIE
我认为也许我输入了一些if语句,因为我选择的某些答案正确地出现了(关于谁是真正的赢家),有些则没有。
但是回到我的代码并多次检查所有代码之后,它们对我来说似乎是正确的...
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{ // MAIN bracket OPEN
char YorN;
char player;
int computer;
srand(time(NULL));
cout << "****************************************************************************************" << endl;
cout << "**********************************ROCK PAPER SCISSORS***********************************" << endl;
cout << "****************************************************************************************\n\n"<< endl ;
cout << "---Rules of the game is simple. Choose R for Rock, P for Paper, and S for Scissors---\n";
cout << "---Whoever with the most wins, will be crowned victorious ---\n\n";
cout << "Do you think you can beat me? (Y or N): ";
cin >> YorN;
cout << "\n\n\n";
cout<< "NOTE:::: Whenever you're done playing the game, press ( E ) to Exit the game::::" << endl;
if(YorN=='Y' || YorN == 'y')
{ // if statement OPEN
cout << "\nAlright, lets see what you got! "<< endl;
} // if statement CLOSED
else
{ // else staement OPEN
cout<< "\nWow, I beat you without even trying. \nI am VICTORIOUS!!" << endl;
return(0);
} // else statement CLOSED
cout<< "Okay, here we go...\n";
cout<<".\n.\n.\n.\n.\n.\n.\n..." ;
cout << "Choose ( R ) for Rock, ( P ) for Paper, ( S ) for Scissors: " ;
cin >> player;
cout <<"\n\n";
switch(player)
{ // Switch statement OPEN
case 'R':
cout<< "Player chooses Rock " <<endl;
break;
case 'r':
cout<< "Player chooses Rock " <<endl;
break;
case 'P':
cout<<"Player chooses Paper "<< endl;
break;
case 'p':
cout<<"Player chooses Paper "<< endl;
break;
case 'S':
cout<<"Player chooses Scissors "<< endl;
break;
case 's':
cout<<"Player chooses Scissors "<<endl;
break;
default:
cout<<"That is no a correct input "<< endl;
} // Switch statement CLOSED
computer = rand() % 3 + 1;
switch(computer)
{ // Switch statement computer OPEN
case 1:
cout<< "Computer chooses Rock "<< endl;
break;
case 2:
cout<< "Computer chooses Paper "<< endl;
break;
case 3:
cout<< "Computer chooses Scissors "<< endl;
break;
} // Swithch staement computer CLOSED
if(player=='r' || player=='R' && computer==1)
{ // if statement OPEN
cout<< "***It's a TIE***" << endl;
} // if Statement CLOSED
else if(player=='r' || player=='R' && computer==2)
{ // if else statement1 OPEN
cout<<"***Computer WINS***"<< endl;
} // if else statement1 CLOSED
else if(player=='r' || player=='R' && computer==3)
{ //else if statement2 OPEN
cout<<"***Player WINS***"<< endl;
} //else if statement2 CLOSED
else if(player=='p' || player=='P' && computer==1)
{ //else if statement3 OPEN
cout<<"***Player WINS***"<<endl;
} // else if statement3 CLOSED
else if(player=='p' || player=='P' && computer==2)
{ // else if statement4 OPEN
cout<<"***It's a TIE***"<< endl;
} // else if statement4 CLOSED
else if(player=='p' || player=='P' && computer==3)
{ // else if statement5 OPEN
cout<<"***Computer WINS***"<<endl;
} // else if statement5 CLOSED
else if(player=='s' || player=='S' && computer==1)
{ // else if statement6 OPEN
cout<< "***Computer WINS***" << endl;
} // else if statment6 CLOSED
else if(player=='s' || player=='S' && computer==2)
{ // else if statement7 OPEN
cout<< "***Player WINS***"<< endl;
} // eses if statement7 CLOSED
else if(player=='s' || player=='S' && computer==3)
{ // else if statement8 OPEN
cout<< "***It's a TIE***" << endl;
} // else if statement8 CLOSED
} // MAIN bracket CLOSED
同样,编码不完整。我仍然必须添加一些内容。
对不起,我还是编码新手。如果我对我的问题不够彻底或在代码页上添加的内容过多,请原谅我...我不知道要包括或排除哪些部分
答案 0 :(得分:1)
修复if语句的所有括号
示例
发件人:
if(player=='r' || player=='R' && computer==1){
收件人:
if((player=='r' || player=='R') && computer==1){