2017-01-08 156 views
1

我創建了一個控制檯應用程序,可以創建一個角色,修改一個角色,以及裝備武器並顯示用戶輸入的角色數據。我的第一個問題是。我如何去捕獲我的用戶條目並將這些值傳遞給我的構造函數。我創建了一個字符類,並創建了我的構造函數變量。我的角色課也包括了getters和setter。補充一點,我該如何爲這個角色裝備武器?將數據傳遞給構造類

static void CreateCharacter() 
     { 
     //Declare my variables 
     string charName; 
     int charBaseAttack; 
     int charHealth; 
     int charAge; 
     int charSaiyanLevel; 



     //Ask for user input 
     Console.Write("Please enter the name of your character"); 
     charName = Console.ReadLine(); 

     Console.Write("Thanks for that, now enter a Base Attack level please: "); 
     charBaseAttack = Convert.ToInt32(Console.ReadLine()); 

     Console.Write("Thanks for that, now enter a Health level please: "); 
     charHealth = Convert.ToInt32(Console.ReadLine()); 

     Console.Write("Thanks for that, now how old is your character: "); 
     charAge = Convert.ToInt32(Console.ReadLine()); 

     Console.Write("Thanks for that, his or her Super Saiyan level please: "); 
     charSaiyanLevel = Convert.ToInt32(Console.ReadLine()); 



     //Instantiate my person 
     Character userCharacter = new Character(charName, charBaseAttack, charHealth, charAge, charSaiyanLevel); 

//我的角色等級

private string mName; 
    private int mBaseAttack; 
    private int mHealth; 
    private int mAge; 
    private int mSaiyanLevel; 

    public Character(string _mName, int _mBaseAttack, int _mHealth, int _mAge, int _mSaiyanLevel) 
    { 
     //Initializing my member varaibles 
     mName = _mName; 
     mBaseAttack = _mBaseAttack; 
     mHealth = _mHealth; 
     mAge = _mAge; 
     mSaiyanLevel = _mSaiyanLevel; 
    } 

    public Character() 
    { 
     Character userCharacter = new Character(); 
    } 




    public string getName() 
    { 
     return mName; 

    } 
    public int getBaseAttack() 
    { 
     return mBaseAttack; 

    } 
    public int getHealth() 
    { 
     return mHealth; 

    } 
    public int getAge() 
    { 
     return mAge; 

    } 

    public int getSaiyanLevel() 
    { 
     return mSaiyanLevel; 

    } 

    public void setName(string _mName) 
    { 
     mName = _mName; 


    } 

    public void setBaseAttack(int _mBaseAttack) 
    { 
     mBaseAttack = _mBaseAttack; 


    } 

    public void setHealth(int _mHealth) 
    { 

     mHealth = _mHealth; 

    } 

    public void setAge(int _mAge) 
    { 

     mAge = _mAge; 

    } 

    public void setSaiyanLevel(int _SaiyanLevel) 
    { 

     mSaiyanLevel = _SaiyanLevel; 
+0

當您運行CreateCharacter()會發生什麼?它會提示用戶輸入他/她的內容嗎? – StaticBeagle

+0

是的先生,這是正確的,它會提示用戶輸入字符屬性。 – JGreen5278

+0

你是什麼意思,「我如何去捕獲我的用戶條目並將這些值傳遞給我的構造函數」? CreateCharacter方法似乎正確地創建了Character。 – StaticBeagle

回答

0

我假設你的代碼是在C#中,如果是的話,你可以改變你的播放器類使用性質的,而不是getter/setter方法。從的getter/setter方法更改爲性能不是唯一的要求

public class Character 
{ 
    public string Name { get; set; } 
    public int BaseAttack { get; set; } 
    public int Health { get; set; } 
    public int Age { get; set; } 
    public int SaiyanLevel { get; set; } 

    public Character(string _mName, int _mBaseAttack, int _mHealth, int _mAge, int _mSaiyanLevel) 
    { 
     //Initializing my member varaibles 
     Name = _mName; 
     BaseAttack = _mBaseAttack; 
     Health = _mHealth; 
     Age = _mAge; 
     SaiyanLevel = _mSaiyanLevel; 
    } 

    // The default constructor is just initializing a local variable userCharacter 
    // to a new Character() that will be destroyed once it goes out of scope. 
    // If you need some default initialization 
    // you could do: 
    public Character() : this(string.Empty, -1, -1, -1, -1) { } 
    // I've initialized all int fields to -1 since it's a value 
    // that none of these fields (hopefully) should ever have 
    // Original default constructor 
    //public Character() 
    //{ 
    // Character userCharacter = new Character(); 
    // Once the code reaches the } below, userCharacter will 
    // be destroyed 
    //} 

    // Overrode the ToString method so that you can print 
    // the characters to the console 
    public override string ToString() 
    { 
     return string.Concat("Character Name: ", Name, " Base Attack: ", BaseAttack, " Health: ", Health, " Age: ", Age, " Saiyan Level: ", SaiyanLevel); 
    } 
} 

讓你的程序類來創建一個角色你可以添加以下修改你的代碼的東西。我試圖解釋,就像我可以在代碼片段,但隨意評論,你應該有一個問題

class Program 
{ 
    // If you want to use CreateCharacter() to return a newly created character, 
    // You could have CreateCharacter() return a Character 
    public static Character CreateCharacter() 
    { 
     //Declare my variables 
     string charName; 
     int charBaseAttack; 
     int charHealth; 
     int charAge; 
     int charSaiyanLevel; 

     //Ask for user input 
     Console.Write("Please enter the name of your character: "); 
     charName = Console.ReadLine(); 

     Console.Write("Thanks for that, now enter a Base Attack level please: "); 
     charBaseAttack = Convert.ToInt32(Console.ReadLine()); 

     Console.Write("Thanks for that, now enter a Health level please: "); 
     charHealth = Convert.ToInt32(Console.ReadLine()); 

     Console.Write("Thanks for that, now how old is your character: "); 
     charAge = Convert.ToInt32(Console.ReadLine()); 

     Console.Write("Thanks for that, his or her Super Saiyan level please: "); 
     charSaiyanLevel = Convert.ToInt32(Console.ReadLine()); 

     //Instantiate my person 
     return new Character(charName, charBaseAttack, charHealth, charAge, charSaiyanLevel); 
    } 

    public static void Main(string[] Args) 
    { 
     // Two ways to instantiate a Character 
     // 1. Change the return type of CreateCharacter() to return a Character object instead of void 
     // 2. Copy & past the contents of CreateCharacter() into main 
     //Declare my variables 
     string charName; 
     int charBaseAttack; 
     int charHealth; 
     int charAge; 
     int charSaiyanLevel; 

     //Ask for user input 
     Console.Write("Please enter the name of your character: "); 
     charName = Console.ReadLine(); 

     Console.Write("Thanks for that, now enter a Base Attack level please: "); 
     charBaseAttack = Convert.ToInt32(Console.ReadLine()); 

     Console.Write("Thanks for that, now enter a Health level please: "); 
     charHealth = Convert.ToInt32(Console.ReadLine()); 

     Console.Write("Thanks for that, now how old is your character: "); 
     charAge = Convert.ToInt32(Console.ReadLine()); 

     Console.Write("Thanks for that, his or her Super Saiyan level please: "); 
     charSaiyanLevel = Convert.ToInt32(Console.ReadLine()); 

     //Instantiate my person 
     Character userCharacter1 = new Character(charName, charBaseAttack, charHealth, charAge, charSaiyanLevel); 
     System.Console.WriteLine(); 
     Character userCharacter2 = CreateCharacter(); 

     // Print both characters to the console 
     System.Console.WriteLine(); 
     System.Console.WriteLine("First character stats:"); 
     System.Console.WriteLine(userCharacter1.ToString()); 
     System.Console.WriteLine(); 
     System.Console.WriteLine("Second character stats:"); 
     System.Console.WriteLine(userCharacter2.ToString()); 
    } 
}