我基本上是在做一个包含两个玩家的游戏,我必须使用函数,选择和循环来实现它。
所以,我做了一个函数,要求user1和user2在程序中输入他们的名字。
我的问题是,如果说我要创建另一个函数,并且在该函数中我想要一个if语句来检查条件...例如,如果(name == someFunction)然后输出以下内容,等等。 / p>
我在下面编写我的代码,所以也许这样会使它更清晰。
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;
string getPlayerOneName();
string getPlayerTwoName();
double game(string, int, int);
int main()
{
cout << "Let's Play Frack! " << endl << endl;
string nameOne = getPlayerOneName();
string nameTwo = getPlayerTwoName();
int points = getUserInputForPoints();
system("pause");
return 0;
}
string getPlayerOneName() // -----------------------------------------------------
{
string playerOne;
cout << "Enter player 1's name: ";
cin >> playerOne;
return playerOne;
}
string getPlayerTwoName() // -----------------------------------------------------
{
string playerTwo;
cout << "Enter player 2's name: ";
cin >> playerTwo;
return playerTwo;
}
double game(string name, int tno, int dno)
{
char roll;
double avg = 0.0;
cout << name << "s turn" << tno << " " << endl;
cout << "Enter R to roll " << dno << "dice: ";
cin >> roll;
cout << endl;
if (roll == 'R')
{
if (name == )
{
char ch;
cout << "Do you want to start from zero (z) or from " << playerOne << "'s" << "score:? ";
cin >> ch;
if (ch == 'z')
{
dno = 5;
}
}
cout << "Your dice are: ";
int dno2 = dno;
}
}
因此对于最后一个函数,如果在if语句中可以包含-:
if (name == string getPlayerTwoName())
{
}
答案 0 :(得分:0)
所以,您有两个类似的功能
string getPlayerOneName() // -----------------------------------------------------
{
string playerOne;
cout << "Enter player 1's name: ";
cin >> playerOne;
return playerOne;
}
string getPlayerTwoName() // -----------------------------------------------------
{
string playerTwo;
cout << "Enter player 2's name: ";
cin >> playerTwo;
return playerTwo;
}
并且您认为:“这应该被概括为一个函数。”
首先:恭喜。您开始像计算机科学家一样思考。 (不要开玩笑。)
要实现此目的,您必须确定这两个功能的实际区别。
string player
…变量是,但是可以在不破坏任何内容的情况下对其进行更改:
string getPlayerOneName() // -----------------------------------------------------
{
string player;
cout << "Enter player 1's name: ";
cin >> player;
return player;
}
string getPlayerTwoName() // -----------------------------------------------------
{
string player;
cout << "Enter player 2's name: ";
cin >> player;
return player;
}
仍然存在不同的提示文本。因此,这是一个函数参数的候选对象:
string getPlayerName(const char *prompt)
{
string player;
cout << prompt;
cin >> player;
return player;
}
新函数getPlayerName()
可以用以下命令调用:
string nameOne = getPlayerName("Enter player 1's name: ");
string nameTwo = getPlayerName("Enter player 2's name: ");
这非常灵活,因为它可以用于播放器名称以外的其他用途。 (不过,在这种情况下,getName()
可能是更好的选择。)
如果这不是故意的,则可以减少代码重复(调用中),例如:
string getPlayerName(int iPlayer)
{
string player;
cout << "Enter player " << iPlayer << "'s name: ";
cin >> player;
return player;
}
通话看起来像:
string nameOne = getPlayerName(1);
string nameTwo = getPlayerName(2);