c#写一个Monster类,它派生出Boss和Goblin两个类,Boss有技能;小怪有攻击;随机生成10个怪,装载到数组中,遍历这个数组,调用他们的攻击方法,如果是boss就释放技能
时间: 2024-04-14 15:27:14 浏览: 121
C# 写的一个小游戏
5星 · 资源好评率100%
下面是一个示例的C#代码,实现了Monster类及其派生类Boss和Goblin,并随机生成10个怪物并装载到数组中。遍历数组时,调用各怪物的攻击方法,如果是Boss类的实例,则会释放技能。
```csharp
using System;
public class Monster
{
public virtual void Attack()
{
Console.WriteLine("怪物攻击!");
}
}
public class Boss : Monster
{
public override void Attack()
{
Console.WriteLine("Boss攻击!");
}
public void UseSkill()
{
Console.WriteLine("Boss释放技能!");
}
}
public class Goblin : Monster
{
public override void Attack()
{
Console.WriteLine("小怪攻击!");
}
}
public class Program
{
public static void Main(string[] args)
{
Random random = new Random();
Monster[] monsters = new Monster[10];
for (int i = 0; i < monsters.Length; i++)
{
int randNum = random.Next(0, 2);
if (randNum == 0)
{
monsters[i] = new Boss();
}
else
{
monsters[i] = new Goblin();
}
}
foreach (Monster monster in monsters)
{
monster.Attack();
if (monster is Boss)
{
((Boss)monster).UseSkill();
}
}
}
}
```
这段代码创建了一个Monster类作为基类,其中有一个虚拟的Attack方法。Boss类和Goblin类继承了Monster类,并重写了Attack方法以实现不同的攻击效果。Boss类还新增了UseSkill方法来释放技能。
在Main方法中,我们使用Random类来生成随机数来决定创建Boss对象还是Goblin对象,并将它们装载到长度为10的Monster数组中。然后通过遍历数组,依次调用各怪物的Attack方法,如果是Boss类的实例,则调用UseSkill方法释放技能。
阅读全文