2016-06-30 61 views
0
#include <stdio.h> 
#include <string.h> 

enum Race {wood_elf, human, high_elf, khajiit, orc, dwarf}; 

enum Class {archer, assassin, healer, knight, mage, paladin}; 

typedef struct Character 
{ 
    char name[20]; 
    enum Class class_; 
    enum Race race_; 
    int perception; 
    int stealth; 
    int strength; 
    int charisma; 
    int agility; 
    int intelligence; 
    int health; 
    int magika; 
    int stamina; 
} Character; 

int main(int argc, char* argv[]) 
{ 

    int mc = 1; 

    while(mc != 2) { 
     printf("Welcome to Ceatures and Computers, please enter a number to select an option: \n\n"); 
     printf("1.) Create Character \n"); 
     printf("2.) Quit \n"); 

     scanf("%i", &mc); 

     if(mc == 1) 
     { 
     } 

     if(mc == 2) 
     { 
      printf("Thank you for playing. \n"); 
     } 

     if(mc > 2) 
      printf("Please enter number 1 or 2 to select a menu option. \n"); 
    } 
    return 0; 
} 

我目前正在嘗試製作基於文本的遊戲並在大學。我很快就要離開了,我想我會試試這個網站,看看當我無法問老師的時候,這可能會有多大用處。我目前正在處理的部分是讓用戶輸入他們的角色名稱,職業,種族,以及具有最高金額和總金額的技能,就像輻射一樣。希望這一切順利,我可以回到這個網站尋求幫助,並有更多的知識來幫助他人。在主體中使用輸入,以便用戶可以編輯

+2

如果'mc'小於'1'會怎麼樣? –

+0

總是檢查'scanf()'的返回值;如果它表示'0',那麼可能意味着用戶輸入'a',您希望他們輸入'1'或'2'。 –

回答

0

歡迎。
部分建議

如果用戶輸入文字如'one',會發生什麼情況?
總是檢查錯誤

if (scanf("%i", &mc) != 1){ 
    printf("incorrect input.\n"); 
    return 1; 
} 

還檢查用戶輸入的值是否正確。如果不採取適當的行動。

使用本:

typedef struct{ 
    //... 
} Character; 

,而不是(這是多餘的命名你的情況):

typedef struct Character{ 
     //... 
} Character; 

我希望這有助於。

+1

我不確定你用'typedef'的建議(我猜可以猜到,但我不確定)。請注意,如果您使用任何POSIX頭文件,[使用'_t'作爲類型名稱的後綴](https://stackoverflow.com/questions/231760/)是爲系統保留的,所以您不應該使用約定你自己的類型。我不相信你的'最後但不是最不重要'的評論 - 我不同意它(不僅僅是因爲打印這樣的值需要''和宏'PRId32'或'PRIX32')。 –

相關問題