Я довольно новичок в программировании на C, и я делаю простую игру в кости. У меня работает вся другая логика, но я не могу понять, как избежать оператора goto. В основном, игрок начинает с 50 долларов в качестве баланса, и программа запрашивает ставку, затем бросают кости и в зависимости от того, каков результат броска, происходят разные вещи. Основная проблема заключается в том, что когда происходит результат, пользователя спрашивают, хотят ли они играть снова, если он говорит «нет», я просто выхожу, но если он говорит «да», мне нужно вернуться к началу и снова попросить ставку.
int main()
{
START:
if (FirstRun == 0)
{
printf("Your starting balance is $%.2f", Balance);
}
if (FirstRun > 0)
{
printf("Your new balance is $%.2f", Balance);
}
if (Balance <= 0)
{
printf("Sorry you are out of money!");
exit(0);
}
do
{
ValidBet = 0;
printf("\nPlease enter your bet:");
scanf("%lf", &Bet);
if ((Bet > Balance) || (Bet < 0))
{
printf("Your bet is invalid, try again.");
}
else
{
ValidBet = 1;
}
} while (ValidBet == 0);
ThrowDicePair();
printf("DICE #1 WAS %d", SumOfThrows);
if (SumOfThrows == 7 || SumOfThrows == 11)
{
Balance += Bet;
printf("You win! Would you like to play again? [y/n]");
C = getch();
if (C == 'y')
{
FirstRun++;
goto START;
}
else if (C == 'n')
{
printf("Thanks for playing");
exit(0);
}
}