好的,所以我真的很陌生,我正在嘗試爲我正在參加的課程製作Blackjack遊戲。到目前爲止,我已經掌握了一切,但是當談到實際的遊戲時,我遇到了麻煩。當我查看我的代碼時,我看不出爲什麼我的遊戲無法正常運行。我期望它比我所看到的更容易解決,因爲我通常會錯過小事情。C++ Blackjack遊戲玩法
for(;;)
{
cout << "1)Bet, 2)Hit or 3)Stay?\n";
cin >> ans;
if(ans == 1)
{
}
if(ans == 2) // Hit
{
Console::Clear();
cout << "Your Hand\n";
Player.AddCard(Deck.Draw());
cout << "\nHand Value: " << Player.HandValue() << "\n";
Player.Show();
if(Player.HandValue() > 21)
{
cout << "You Busted man...Sorry :/\n\n"
//<< "Dealer's Hand\n\n";
//Dealer.Show();
}
else if(Player.HandValue() == 21)
{
cout << "You've Won Your Freedom! :D";
}
while(Dealer.HandValue() <= 17)
{
Dealer.AddCard(Deck.Draw());
Dealer.Show(1);
if(Dealer.HandValue() > 21)
{
cout << "Dealer Busted man...You Win! :D\n"
<< "\nDealer's Hand\n";
Dealer.Show();
}
else if(Dealer.HandValue() == 21)
{
cout << "Dealer Wins...Your Soul! >:D\n"
}
}
if(Player.HandValue() > Dealer.HandValue())
{
cout << "Your Hand Beats Dealer's...You Win!! :D\n"
}
else if(Player.HandValue() < Dealer.HandValue() && Dealer.HandValue() > 17 && Player.HandValue() > 17)
{
cout << "Dealer's Hand Wins...Sorry :/\n"
}
cin.ignore(INT_MAX, '\n');
cin.clear();
cin.ignore(INT_MAX, '\n');
}
break;
if(ans == 3) // Stay
{
Console::Clear();
cout << "Your Hand\n";
cout << "\nHand Value: " << Player.HandValue() << "\n";
Player.Show();
if(Player.HandValue() > 21)
{
cout << "You Busted man...Sorry :/\n"
}
else if(Player.HandValue() == 21)
{
cout << "You've Won Your Freedom! :D\n";
cout << "\n\n";
cout << "Dealer's Hand\n";
Dealer.Show();
}
while(Dealer.HandValue() < 17)
{
Dealer.AddCard(Deck.Draw());
Dealer.Show(1);
if(Dealer.HandValue() > 21)
{
cout << "Dealer Busted man...You Win! :D\n"
}
else if(Dealer.HandValue() == 21)
{
cout << "Dealer Wins...Your Soul! >:D\n"
}
}
if(Player.HandValue() > Dealer.HandValue())
{
cout << "Your Hand Beats Dealer's...You Win!! :D\n"
}
else if(Player.HandValue() < Dealer.HandValue() && Dealer.HandValue() > 17 && Player.HandValue() > 17)
{
cout << "Dealer's Hand Wins...Sorry :/\n;
cin.ignore(INT_MAX, '\n');
}
cin.clear();
cin.ignore(INT_MAX, '\n');
}
if(ans == 4)
{
exit(0);
}
system("pause");
}
不介意if(ans == 1),我在爲我的博彩代碼保存。這段代碼在很大程度上滿足了我的需要。我沒有東西來檢查ace。我們有一個堆棧,這是Draw()和AddCard()從中拉出來的。任何幫助都非常感謝,並且對評論保持溫和,我是新的。 :)
任何特別的問題..?我們需要更多信息來幫助你。 – jli
你說,「我的遊戲無法正常工作」。你給了什麼輸入?你看到了什麼結果,你認爲什麼結果是「正確的」? (或者你想我們完全猜測?) – abelenky
我有一種感覺,我太模糊了,對不起。這是我所做的一個循環的一部分,在它顯示了我的手和莊家的手後,它會詢問我是否想要下注,打中或留下。我一直無法找到它,但我的問題都與我的輸出有關。 我測試了好幾分鐘,這是我看到的那種麻煩: 有時,如果我畫,然後胸圍,經銷商仍然畫兩次,然後他的胸圍,而這兩個消息胸圍,我的和他的,顯示,所以沒有人獲勝。 如果我留下來,我會自動回到我的主菜單,而不是在代碼中顯示。 – user1086849