2017-01-08 3 views
1

Я создаю консольное приложение, которое может создавать персонаж, изменять персонаж, а также оснащать оружие и отображать пользователя, вводить символьные данные. Мой первый вопрос. Как я могу захватить записи моих пользователей и передать эти значения моему конструктору. У меня есть класс символов, созданный и также созданный переменными-конструкторами. Я также включил геттеры и сеттеры в свой класс персонажей. Чтобы добавить, как я мог бы обмануть оружие этому персонажу?Передача данных в класс конструктора

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 правильно создает символ. – StaticBeagle

ответ

0

Я предполагаю, что ваш код в C#, если так что вы могли бы изменить свой класс игрока, чтобы использовать свойства вместо геттеры/сеттеры. Переход от геттера/сеттеров свойств не то, что требуется

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()); 
    } 
} 
Смежные вопросы