我該如何繼續讓玩家擲骰子直到擲出正確的數字或失敗?循環到條件發生
我需要遊戲或骰子繼續通過循環。需要修改什麼才能做到這一點?
這裏是我的程序:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
int dice_num1, dice_num2 = 0;
int roll_dice;
int dice_num3, dice_num4 = 0;
int roll_dice2;
char repeat = 'y';
while (repeat == 'y' || repeat == 'Y')
{
srand(time(0));
dice_num1 = rand() % 6 + 1;
dice_num2 = rand() % 6 + 1;
roll_dice = dice_num1 + dice_num2;
cout <<"Player rolled: "<< dice_num1<<" + "<<dice_num2<<" = "<<roll_dice<<endl;
cout <<"\nThe point is "<<roll_dice<<endl;
dice_num3 = rand() % 6 + 1;
dice_num4 = rand() % 6 + 1;
roll_dice2 = dice_num3 + dice_num4;
cout <<"\nPlayer rolled: "<< dice_num3<<" + "<<dice_num4<<" = "<<roll_dice2<<endl;
if (roll_dice2 == 7 || roll_dice2 == 11)
{
cout << "Congrats you are a Winner!" << endl ;
}
else if (roll_dice2 == 2 || roll_dice2 == 3 || roll_dice2 == 12)
{
cout << "Sorry, you rolled craps, You lose!" << endl;
}
else if (roll_dice2 == 4 || roll_dice2 == 5 ||roll_dice2 == 6 ||roll_dice2 == 8 || roll_dice2 == 9 || roll_dice2 == 10)
{
dice_num3 = rand() % 6 + 1;
dice_num4 = rand() % 6 + 1;
int sum_num2 = dice_num3 + dice_num4;
if(sum_num2 == roll_dice2)
{
cout << "Congrats you are a Winner!" << endl;
break;
}
else if(sum_num2 == 7)
{
cout << "Sorry, You Lose!" << endl;
break;
}
}
cout <<"\nAnother game? Y(es) or N(o)" << endl;
cin >> repeat;
if (repeat == 'n' || repeat == 'N')
{
cout <<"Thank you for playing!"<< endl;
return 0;
}
}
}
這是我的輸出:
Player rolled: 4 + 5 = 9
The point is 9
Player rolled: 5 + 3 = 9
Another game? Y(es) or N(o)
這是我的輸出要求是:
Player rolled: 2 + 2 = 4
The point is 4
Player rolled: 4 + 5 = 9
Player rolled: 5 + 1 = 6
Player rolled: 1 + 2 = 3
Player rolled: 2 + 3 = 5
Player rolled: 1 + 2 = 3
Player rolled: 3 + 5 = 8
Player rolled: 2 + 4 = 6
Player rolled: 6 + 3 = 9
Player rolled: 6 + 2 = 8
Player rolled: 3 + 4 = 7
You rolled 7 and lost!
我如何得到這個繼續在循環中擲骰子?
我從來沒有參加賭博,很多。那麼,至少我現在知道胡扯的規則。 –
感謝您的意見。 –