写出英雄有不同. 同 -个英雄只能获取- 己方英雄数量至少是了个 可以设置英雄的 站位(前排中排后排) ,每 —个位置只能最多占据 一个英雄。总英雄(种类)数量 不低于6个的java代码
时间: 2024-04-30 20:20:32 浏览: 179
【目标检测数据集】LOL英雄联盟角色检测数据集3000张6类(队友、己方小兵、敌方小兵、防御塔、韦恩).zip
5星 · 资源好评率100%
以下是一个简单的实现:
```
import java.util.ArrayList;
import java.util.List;
public class Hero {
private String name;
private String position;
public Hero(String name, String position) {
this.name = name;
this.position = position;
}
public String getName() {
return name;
}
public String getPosition() {
return position;
}
public static void main(String[] args) {
List<Hero> heroes = new ArrayList<>();
// 添加6个英雄种类
heroes.add(new Hero("英雄1", ""));
heroes.add(new Hero("英雄2", ""));
heroes.add(new Hero("英雄3", ""));
heroes.add(new Hero("英雄4", ""));
heroes.add(new Hero("英雄5", ""));
heroes.add(new Hero("英雄6", ""));
// 设置英雄站位
int frontCount = 0;
int midCount = 0;
int backCount = 0;
for (Hero hero : heroes) {
int randomPosition = (int) (Math.random() * 3);
switch (randomPosition) {
case 0:
if (frontCount < 2) {
hero.position = "前排";
frontCount++;
} else if (midCount < 3) {
hero.position = "中排";
midCount++;
} else if (backCount < 1) {
hero.position = "后排";
backCount++;
}
break;
case 1:
if (midCount < 3) {
hero.position = "中排";
midCount++;
} else if (frontCount < 2) {
hero.position = "前排";
frontCount++;
} else if (backCount < 1) {
hero.position = "后排";
backCount++;
}
break;
case 2:
if (backCount < 1) {
hero.position = "后排";
backCount++;
} else if (midCount < 3) {
hero.position = "中排";
midCount++;
} else if (frontCount < 2) {
hero.position = "前排";
frontCount++;
}
break;
}
}
// 输出每个英雄的名称和站位
for (Hero hero : heroes) {
System.out.println(hero.getName() + ":" + hero.getPosition());
}
}
}
```
这个实现中,我们创建了一个`Hero`类来表示每个英雄,其中包含名称和站位两个属性。在`main`方法中,我们先创建了6个英雄种类的实例,并放入一个`heroes`列表中。然后,我们通过循环遍历`heroes`列表,为每个英雄随机分配一个站位,分别是前排、中排和后排。我们使用三个计数器来记录已经分配的英雄数量,以保证每个位置最多只能占据一个英雄。最后,我们输出每个英雄的名称和站位。
阅读全文