I am create a console application that can create a Character, modify a character, as well as equip a weapon and display user enter character data. My first question is. How do I go about capturing my users entries and passing those values to my constructor. I have a character class created and also created my constructor variables. I've also included getters and setters in my character class. To add, how would I go about equipping a weapon to this character?
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);
//My Character Class
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;
I'm assuming that your code is in C#, if so you could change your player class to use properties instead of getters/setters. Changing from getter/setters to properties is not something that's required
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);
}
}
To get your program class to create a character your could add the following modifications to your code. I've tried to explain as much as I can in the code snippet but feel free to comment should you have a question
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());
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.