2016-10-26 2 views
0

Мой вопрос в том, как мне сохранить значение int в цикле while, мой код - все об азартных играх, вы начинаете с 1000, и вы хотите получить максимальную сумму наличных денег, но когда я снова рулон, мои деньги восстанавливаются к его первоначальному значению, которое я установил.Как сохранить значения int в цикле while?

Мой код это (Обратите внимание, я новичок, так что не смеяться, как это плохо)

#include <cmath> 
#include <stdio.h> 
#include <iostream> 
#include <ctime> 
#include <cstdlib> 
using namespace std; 


int main() 
{ 
    char again = 'Y'; 
    int test; 
    int yes; 
    int CashW; 
    CashW = 1000; 
    int CashL; 
    CashL = 1000; 
    int yLose; 
    yLose = 500; 
    int xCash; 
    xCash = 1000; 
    int xRan; 
    srand(time(0)); 
    xRan = rand() % 100 + 1; 
    cout << " Welcome to the Gambling Game!" << endl; 
     cout << " If the number is above 50 I win!" << endl; 
     cout << " If the number is below 50 you lose!" << endl; 
     while (again == 'y' || again == 'Y') 
     { 
     cout << " The Number I Choose Is: " << xRan << endl; 


     CashL = xCash - xCash - xCash; 
     CashW = xCash + xCash; 


     if (xRan < 50) { 
      cout << " You win, rats!" << endl; 
      cout << " The cash you started with was: " << xCash << endl; 
      cout << " The cash you have now is: " << CashW << endl; 
      cout << " Type 1 to play again, type 2 to close the game." << endl; 
      cin >> yes; 

     } 

     if (xRan > 50) { 
      cout << " I win, you lose!" << endl; 
      cout << " The cash you started with was: " << xCash << endl; 
      cout << " The cash you have now is: " << CashL << endl; 
      cout << " Type 1 to play again, type 2 to close the game." << endl; 
      cin >> yes; 

     } 

     if (yes == 1) { 
      cout << " Cool, a gambling man! Time to make some cash" << endl; 
     } 

    } 


} 
+1

Вы должны использовать только одну переменные для хранения текущих наличных денег для игрока. Увеличьте его или уменьшите в утверждениях if для победы или потери. Вы должны переместить генерацию случайных чисел внутри цикла while, чтобы получать разные результаты на каждом шагу. –

ответ

1

В своем коде вы в настоящее время отображения либо CashW или CashL в зависимости от результата gampbling.

К сожалению, вы распечатаете результат только и не храните его в xCash. Итак, на следующей итерации вы снова начинаете с того же значения xCash!

Вы можете легко решить эту проблему, добавив xCash = CashW; или xCash = CashL; прямо под строку, в которой вы показываете результат.

+0

Это скорее всего будет «xCash + = CashW» и «xCash - = CashL'. –

+0

@RemyLebe на самом деле я колебался. Текст, отображаемый OP: * «У вас есть наличные деньги ...» *. Поэтому я предположил, что это действительно общий, а не дополнительный выигрыш. Но спасибо за комментарии: это поможет OP настроить в случае, если я неправильно понял. – Christophe

1

Вы никогда не обновляете xCash с количеством выигрышей/потерь. Вы не генерируете новое случайное число на каждой итерации цикла. И вы застряли в бесконечном цикле, потому что вы никогда не обновляете переменную цикла again.

Попробуйте что-то больше, как это вместо:

#include <cmath> 
#include <stdio.h> 
#include <iostream> 
#include <ctime> 
#include <cstdlib> 

using namespace std; 

int main() 
{ 
    const int CashW = 1000; 
    const int CashL = 1000; 

    int xCash = 1000; 
    int xRan; 
    char answer; 

    srand(time(0)); 

    cout << " Welcome to the Gambling Game!" << endl; 
    cout << " If the number is above 50 I win!" << endl; 
    cout << " If the number is below 50 you win!" << endl; 

    do 
    { 
     xRan = rand() % 100 + 1; 
     cout << " The Number I Choose Is: " << xRan << endl; 

     if (xRan < 50) { 
      cout << " You win, rats!" << endl; 
      cout << " The cash you started with was: " << xCash << endl; 
      xCash += CashW; 
      cout << " The cash you have now is: " << xCash << endl; 
     } 

     else if (xRan > 50) { 
      cout << " I win, you lose!" << endl; 
      cout << " The cash you started with was: " << xCash << endl; 
      xCash -= CashL; 
      cout << " The cash you have now is: " << xCash << endl; 
     } 

     else { 
      cout << " dang, a draw!" << endl; 
     } 

     cout << " play again? " << endl; 
     cin >> answer; 

     if ((answer != 'y') && (answer != 'Y')) { 
      cout << " All done? Come back again another time!" << endl; 
      break; 
     } 

     cout << " Cool, a gambling man! Time to make some cash" << endl; 
    } 
    while (true); 

    return 0; 
} 
Смежные вопросы