English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

#include
#include
#include
int attackmode(int,int,int); /* 攻擊結果判斷 */
int defensemode(int,int,int); /* 防禦結果判斷 */

union action /* 將攻擊與防禦的動作宣告為共同空間 */
{
int att; /* 攻擊方式 */
int def; /* 防禦方式 */
};

typedef struct Hero /* 遊戲者資料的結構體 */
{
union action hact; /* 攻擊動作 */
int hblood; /* 生命值 */
}GOOD; /* 自訂新型別 */

typedef struct Monster /* 電腦敵人資料的結構體 */
{
union action mact; /* 攻擊動作 */
int mblood; /* 生命值 */
}BAD; /* 自訂新型別 */

int main(void)
{
int option;
GOOD me; /* 宣告結構體變數 me */
BAD you; /* 宣告結構體變數 you */

me.hblood=3; /* 設定遊戲者的生命值 */
you.mblood=3; /* 設定電腦敵人的生命值 */
randomize(); /* 取得亂數種子的函式 */
do
{
printf(\"請選擇攻擊方式 (1)拳頭(2)腳踢(3)劍擊\\n\");
scanf(\"%d\",&me.hact.att);
system(\"cls\"); /* 清除螢幕 */
you.mact.def=rand()%3; /* 亂數產生電腦敵人防禦方式 */
you.mblood=attackmode(me.hact.att,you.mact.def,you.mblood);
printf(\"您的生命值剩下 %d\\n\",me.hblood);
printf(\"敵人生命值剩下 %d\\n\",you.mblood);

printf(\"請選擇防禦方式 (1)低頭(2)往上跳(3)格擋\\n\");
scanf(\"%d\",&me.hact.def);
system(\"cls\"); /* 清除螢幕 */
you.mact.att=rand()%3; /* 亂數產生電腦敵人攻擊方式 */
me.hblood=defensemode(me.hact.def,you.mact.att,me.hblood);
printf(\"您的生命值剩下 %d\\n\",me.hblood);
printf(\"敵人生命值剩下 %d\\n\",you.mblood);
}while(me.hblood!=0&&you.mblood!=0);

if(me.hblood==0&&you.mblood==0)
printf(\"平手\\n\");
else if(me.hblood!=0)
printf(\"您贏了\\n\");
else
printf(\"您輸了\\n\");

return 0;
}
/* 判斷攻擊結果的函式 */
int attackmode(int att,int def,int blood)
{
if(att!= def)
{
printf(\"攻擊得分\\n\");
return blood-1;
}
else
{
printf(\"攻擊無效\\n\");
return blood;
}
}
/* 判斷防禦結果的函式 */
int defensemode(int def,int att,int blood)
{
if(att!= def)
{
printf(\"防禦失敗\\n\");
return blood-1;
}
else
{
printf(\"防禦成功\\n\");
return blood;
}
}

=====分格線=====
我自己後來有加上 system(\"pause\");
可是還是無法顯示出執行畫面
請幫我看看 哪邊出了問題 或是程式碼有錯
麻煩各位 網友囉
我的c語言作業系統為Dev-C++

2006-05-30 19:51:23 · 5 個解答 · 發問者 Anonymous in 電腦與網際網路 程式設計

======分格線======
各位有回答我的大哥大姐們~
小弟我都試過你們所教的方法
可是程式碼 會一值出現偵錯
可是我又不知道錯在哪.....[很無言]
如果能的話 煩請各位大哥大姐們
能把完整的程式碼 都po上來嗎??
就是由我po上來的程式碼裡面在加入 或是刪除些程式碼
麻煩你們了 要交報告.....煩惱中

2006-05-31 13:06:54 · update #1

5 個解答

你在多宣告一個標題檔試試看~
加上:#include
這樣或許就可以了~加油吧~

2006-05-31 12:06:52 補充:
因為system("pause")~可能要有這標題檔才能執行~試試吧~

2006-05-31 08:04:46 · answer #1 · answered by Tony Pai 5 · 0 0

其實只要把randomize()改成rand()就行了= =

2006-12-27 09:49:58 · answer #2 · answered by ....... 1 · 0 0

我記得你只需要在最上方宣告#include
就可以使用system("pause");了

2006-05-31 10:08:10 · answer #3 · answered by Alpha 1 · 0 0

無法顯示出執行畫面是指什麼都沒看見?還是有顯示,不過不是你要看到的東西?

2006-05-31 03:37:01 · answer #4 · answered by 7 · 0 0

你可以在 main()最後一行 加上 getch() 試試看

2006-05-30 20:15:29 · answer #5 · answered by ? 2 · 0 0

fedest.com, questions and answers