*单例练习(mvc)
设计一个英雄类包括,属性包括:姓名,类型(敏捷/智力/力量)、血量,魔法值
设计一个英雄管理器,属性包括:所有的英雄[10个];方法:新增一个英雄
class Hero
{
public string name;
public string kind;
public int hp;
public int mp;
}
class HeroManager
{
//单例一个英雄管理器
public static readonly HeroManager manager = new HeroManager();
//阻止外界实例化管理器
private HeroManager() { }
//所有要管理的英雄
public Hero[] allhero = new Hero[10];
//用来记录当前到底存储了多少个英雄
private int count = 0;
public bool Add(Hero h)
{
//判断是否已经存满了
if (count > 10)
{
return false;
}
//存储
//allhero是存放所有英雄的数组,count是记录当前存多少个元素,h是要存放的英雄
//当前count是0,将h这个英雄放进数组里第0元素的位置,同时count++
//下一次h存放的位置就变成了第1位元素,接着再添加
allhero[count++] = h;
return true;
}
}
class Program
{
public static void Main(string[] args)
{
do
{
//从控制台输入英雄的信息
Console.WriteLine("请输入一个英雄的名字:");
string name = Console.ReadLine();
Console.WriteLine("请输入英雄的类型:");
string kind = Console.ReadLine();
Console.WriteLine("请输入血量:");
int hp = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入魔法值:");
int mp = Convert.ToInt32(Console.ReadLine());
//实例化一个英雄
Hero h = new Hero();
h.name = name;
h.kind = kind;
h.hp = hp;
h.mp = mp;
//获取英雄管理器(用单列做:只可以有一个英雄管理器)
HeroManager manager = HeroManager.manager;
bool result = manager.Add(h);
if (result)
{
Console.WriteLine("添加成功!");
}
else
{
Console.WriteLine("添加失败,容量已满!");
}
} while (true);
}
}