一、创建英雄的装备
- 创建英雄装备结构体,包含名称,攻击⼒加成,法术强度加成,⾎量加成。
- 有5个装备保存在结构体数组当中,编程找出⾎量加成最⾼者
- 对装备数组按照攻击⼒加成排序并使装备按照攻击⼒加成升序进⾏信息打印
首先是创建这个结构体,代码如下:
struct Equipment
{
//此结构体为一件装备,包含名称,攻击⼒加成,法术强度加成,⾎量加成
public string equipmentName;
public int attackUp;
public int spellPowerUp;
public int bloodUp;
//创建构造函数
public Equipment(string equipmentName, int attackUp, int spellPowerUp, int bloodUp)
{
this.equipmentName = equipmentName;
this.attackUp = attackUp;
this.spellPowerUp = spellPowerUp;
this.bloodUp = bloodUp;
}
}
然后,我们在主函数中完成题目的两个要求,代码如下:
//创建结构体数组
Equipment[] testArr03 = new Equipment[5];
//往数组里加入五件装备
testArr03[0] = new Equipment("攻击之爪", 8, 0, 0);
testArr03[1] = new Equipment("黑皇杖", 20, 0, 200);
testArr03[2] = new Equipment("秘银锤", 16, 0, 0);
testArr03[3] = new Equipment("圣剑", 300, 0, 0);
testArr03[4] = new Equipment("恶魔刀锋", 24, 0, 0);
//使用foreach找出血量最高
//定义变量保存最高血量的装备
Equipment bloodMax = testArr03[0];
foreach (var item in testArr03)
{
if (item.bloodUp > bloodMax.bloodUp)
{
bloodMax = item;
}
}
Console.WriteLine("血量加成最高的装备是:" + bloodMax.equipmentName);
//按照攻击力加成升序
//定义变量temp用于交换
Equipment temp05 = new Equipment();
for (int i = 0; i < testArr03.Length - 1; i++)
{
for (int j = i + 1; j < testArr03.Length; j++)
{
if (testArr03[i].attackUp > testArr03[j].attackUp)
{
temp05 = testArr03[i];
testArr03[i] = testArr03[j];
testArr03[j] = temp05;
}
}
}
//按照攻击力升序打印装备信息
Console.WriteLine("将装备按照攻击力加成升序排序:");
for (int i = 0; i < testArr03.Length; i++)
{
Console.WriteLine("{0}.{1}:攻击力+{2},法术强度+{3},血量+{4}。",
i, testArr03[i].equipmentName, testArr03[i].attackUp, testArr03[i].spellPowerUp, testArr03[i].bloodUp);
}
以上。
二、创建物品
- 创建物品结构体Item,该结构体包含结构体成员:物品名称,物品买⼊价格,物品卖出价
格,物品的类型(包括包含消耗品,装备,武器,材料,使⽤枚举)。给该结构体定义构造
函数,在物品创建的时候给物品的属性赋值,使⽤我们定义的结构体创建出3个物品。
与第一题一样,首先创建枚举和结构体:
enum ItemType
{
Consumables,
Equipment,
Weapon,
Material
}
struct Item
{
/*物品结构体Item,该结构体包含结构体成员:物品名称,物品买⼊价格,物品卖出价
格,物品的类型*/
public string name;
public int priceOfBuy;
public int priceOfSell;
public ItemType itemType;
public Item(string name, int priceOfBuy, int priceOfSell, ItemType itemType)
{
this.name = name;
this.priceOfBuy = priceOfBuy;
this.priceOfSell = priceOfSell;
this.itemType = itemType;
}
}
然后我们在主函数创建三个物品:
//创建物品
Item item01 = new Item("Healing Potion", 100, 50, ItemType.Consumables);
Item item02 = new Item("Cloth shoes", 500, 250, ItemType.Equipment);
Item item03 = new Item("javelin", 1200, 600, ItemType.Equipment);
以上。
三、创建英雄
- 创建英雄结构体Hero,包含字段:名字name,加装的物品items(数组类型),英雄的类型类型分为:法师,战⼠,刺客,坦克,射⼿,辅助,使⽤枚举)。
- 利⽤该结构体创建出英雄,加装上⾯创建的三个物品
还是先创建枚举和结构体:
enum HeroType
{
Master,
Warrior,
Assassin,
Tank,
Shooter,
Assistant
}
struct Hero
{
public string heroName;
public Item[] items;
public HeroType heroType;
}
然后完成题目要求:
//创建英雄
Hero hero = new Hero();
hero.heroName = "Wind Runner";
hero.heroType = HeroType.Shooter;
hero.items[0] = item01;
hero.items[1] = item02;
hero.items[2] = item03;
好啦,关于C#的枚举与结构体的小练习就写到这了。
有疑问的可以私信博主。
点个关注,给个赞呗!