игра в кости — застрял на C ++ счастливая игровая программа

Мой основной алгоритм:

Попросите ввести сумму денег; Бросает два шестигранных кубика; если они добавляют до 7, добавьте 4 к сумме денег; иначе вычтите 1 из суммы денег; цикл до moneyamount<0; Пользователь петлевой игры говорит n, когда ему предлагается снова играть.

/*
*File: hw3
*Author: Nathaniel Goodhue
*
*Created on: 9/15/15
*Description: Game of lucky sevens
*
*/

#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

int main()
{
srand (time(NULL));
double moneyAmount;
int winValue = 7;
int numRolls = 0;
char playAgain = 'y';

while(playAgain == 'y')
{
cout<<"Enter the amount of money you are playing with: $";
cin>>moneyAmount;

while(moneyAmount>0)
{
int roll1= (rand()%6)+1;
int roll2 = (rand()%6)+1;

if(roll1+roll2 == winValue)
{
moneyAmount+=4;
numRolls++;
}

else
{
moneyAmount-=1;
numRolls++;
}
}
cout<<"It took "<<numRolls<<" roll(s) to lose all of your money"<<endl;
// cout<<"Your maximum amount of money was $" <<maxAmount<<" after "<<maxRolls<<" roll(s)"<<endl;
cout<<"Play again? y/n"<<endl;
cin>>playAgain;
if(playAgain == 'y')
{
cout<<"Enter the amount of money you are playing with: $";
cin>>moneyAmount;
numRolls = 0;

}

else
{
break;
}
}
return 0;
}

Выше мой текущий код. Работает как задумано. Я застрял в том, что мне нужно иметь возможность реализовать эту строку кода сразу после того, как деньги упадут ниже 0:

  cout<<"Your maximum amount of money was $" <<maxAmount<<" after "<<maxRolls<<" roll(s)"<<endl;

Мне нужно выяснить, когда было больше всего денег и через сколько рулонов оно появилось. maxAmount переменная будет максимальной суммой денег, а maxRolls переменная будет количество рулонов, когда maxAmount был достигнут

0

Решение

Это довольно просто добавить в ваш код. Что вы можете сделать, так это проверить, превышает ли сумма денег, которую они имеют, максимальную сумму. Если затем установить максимальное значение тока и записать количество оборотов, которое потребовалось для получения этого значения.

int maxAmount = moneyAmount, maxRolls = 0;

while(moneyAmount > 0)
{
int roll1 = (rand() % 6) + 1;
int roll2 = (rand() % 6) + 1;
numRolls++;

if(roll1 + roll2 == winValue)
moneyAmount += 4;
else
moneyAmount -= 1;

if (moneyAmount > maxAmount)
{
// the current amount of money is greater than the max so set max to current and get the number of rolls
maxAmount = moneyAmount;
maxRolls  = numRolls;
}
}
2

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector