Я работаю над проектом по ознакомлению моего колледжа с классом cs, в котором мы должны написать «казино». Одним из требований является то, что пользователь может выбрать функцию «контрольный пример», которая при выборе проверяет все наши функции. Проблема в том, как я могу тестировать функции, которые требуют большого количества пользовательского ввода, а также используют много случайных чисел?
Я пытался выяснить, как получить ввод с компьютера вместо пользователяНо я не нашел ничего убедительного. Кроме того, при предоставлении ответов имейте в виду, что это вводный класс, и поэтому мой код не будет ни чистым, ни эффективным, но это то, чему я научился.
Пример игры высокого / низкого уровня для "казино":
void highLowGame(int ¤tBalance)
{
int betAmount;
int baseNum;
int secondNum;
char hOrL;
char continueYOrN;
do
{
cout << "Your current balance is $" << currentBalance << "\nHow much would you like to bet?\n";
cin >> betAmount;
betAmount = correctIntInput(betAmount);
betAmount = validBet(currentBalance, betAmount);
baseNum = randomWithMax(9) + 1;
cout << "The first number is " << baseNum << "\nDo you bet (h)igh, or (l)ow?\n";
cin >> hOrL;
hOrL = correctCharInput(hOrL);
while (!(hOrL == 'l' || hOrL == 'L' || hOrL == 'h' || hOrL == 'H'))
{
cout << "Invalid input, please enter 'H' or 'L'\n";
cin >> hOrL;
}
secondNum = randomWithMax(9) + 1;
cout << "The second number is " << secondNum << "\n";
if ((((hOrL == 'l') || (hOrL == 'L')) && (secondNum < baseNum)) || (((hOrL == 'h') || (hOrL == 'H')) && (secondNum > baseNum)))
{
cout << "Congratulations, you won your bet!\n";
updateBalance(currentBalance, 1, betAmount, true);
cout << "Your new balance is " << currentBalance << "\n";
}
else
{
cout << "Looks like you lost your bet!\n";
updateBalance(currentBalance, 1, betAmount, false);
cout << "Your new balance is " << currentBalance << "\n";
}
if (currentBalance <= 0)
{
cout << "Uh oh, you are bankrupt!\n";
break;
}
cout << "Would you like to play again?\n";
cin >> continueYOrN;
continueYOrN = correctCharInput(continueYOrN);
while (continueYOrN != 'n' && continueYOrN != 'N' && continueYOrN != 'y' && continueYOrN != 'Y')
{
cout << "Invalid input, please enter a new input:\n";
cin >> continueYOrN;
continueYOrN = correctCharInput(continueYOrN);
}
cout << "\n\n\n\n";
}while(!(continueYOrN == 'n' || continueYOrN == 'N'));
Образец «теста», данного профессором, который проверяет функцию с именем updateBalance (), которая просто выполняет функции, перечисленные в условиях прохождения / сбоя:
void test()
{
int sampleBalance = 100;
int sampleBet = 50;
int samplePayout = 5;
bool sampleWin = true;
cout << "Testing updateBalance() win...";
updateBalance(sampleBalance, sampleBet, samplePayout, sampleWin);
if (sampleBalance == sampleBalance + samplePayout * sampleBet)
{
cout << "Pass!\n";
}
else
{
cout << "Fail!\n";
}
}
Извините забольшой блок кода для игры HighLow, я не был уверен, какие части я должен вытащить, если таковые имеются. Я даже не знаю, что ожидать в качестве результата (кроме прохода / неудачи), так как я даже не уверен, как сделать то, что просит профессор. Опять же, я довольно новичок в этом, поэтому мой код может быть грязным или неэффективным, и я в порядке, я просто нуждаюсь в помощи, как выполнить мое задание. Заранее спасибо!