台灣最大程式設計社群網站
線上人數
1377
 
會員總數:242257
討論主題:187352
歡迎您免費加入會員
討論區列表 >> C/C++ >> return
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
return
價值 : 25 QP  點閱數:310 回應數:3

樓主

電機藍孩
門外漢
0 1
4 0
發送站內信

我想寫21點的遊戲
但是我目前遇到問題
int main裡的else下面有加上另外宣告的函式int handOfCard = dealCard();
但是我之後好像跳不出函式
跑不出下面的cout << "Do you want to hit ? [y/n]";
請問如何解決
謝謝><


int dealCard();

int main()
{

char str1[] = "st[/u]art";
char str2[] = "deal";
char y,n,c;

cout << "\n § BlackJack §\n\n" << endl;
cout << "Enter < deal > to start game !!" <<endl;
cin >> str1;

srand(time(0));

if(strcmp(str1,str2)!=0)
{
cout << "Error to start !! Please enter again.";
}
else
{
int handOfCard = dealCard();

cout << "Do you want to hit ? [y/n]";
cin >> c;

if(c==y)
{
int handOfCard = dealCard();
}
if(c==n)
{
cout << "Card Counting : ";
}
}
}

int dealCard()
{
int card=1+rand()%13;
int sum=0;

cout << "Player's hand : ";
if(card==1)
cout << "Ace" << " ";
else if(card==11)
cout << "Jack" << " ";
else if(card==12)
cout << "Queen" << " ";
else if(card==13)
cout << "King" << " ";
else
cout << card << " ";

cin >> card;

sum+=card;

cout << sum;

if(sum>21)
{
cout << "Over !! You LOSE !!" << endl << "Do you want to play again ? [y/n]";
}
if(sum==21)
{

}
return sum;
}

搜尋相關Tags的文章: [ return ] ,
本篇文章發表於2017-11-11 23:00
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Blue
檢舉此回應
Hi,您好:
我使用VC++測試,
程式是有顥示 "Do you want to hit ? [y/n]"
但,會當在 if(c==y) 這裡, 改 if(c=='y')
if(c==y)
{
int handOfCard = dealCard();
}
謝謝!
本篇文章回覆於2017-12-21 09:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

詹宗運
檢舉此回應
要改兩個地方:
if(c==y) 改成 if(c=='y')

if(c==n) 改成 if(c=='n')

改好以後會如下所示:
...
if(c=='y')
{
int handOfCard = dealCard();
}
if(c=='n')
{
cout << "Card Counting : ";
}
...

這樣就可以跑了。
本篇文章回覆於2018-03-23 02:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

DANNY
檢舉此回應
2樓說得沒錯,y/n是「字元」。

這樣應該是如果一個叫做c的東西和一個叫做y的東西一樣,就執行...。所以要改成下面那段程式:

這樣就變成了如果一個叫做c的東西是0b01111001 (字元y),就執行...
本篇文章回覆於2018-03-26 20:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.