Java魔兽争霸
魔兽争霸是一款非常经典的实时战略游戏,玩家需要建立基地、培训士兵、发展经济,并与敌人进行战斗。在本文中,我们将使用Java编程语言来实现一个简化版的魔兽争霸游戏。
游戏规则
我们将游戏规则简化为以下几点:
- 玩家可以选择建立不同类型的建筑,包括城堡、兵营和矿场。
- 玩家可以训练士兵,包括步兵和骑兵。
- 玩家可以选择进攻敌人的城堡。
- 玩家需要管理资源,包括金币和矿石。
游戏设计
我们将游戏设计为面向对象的模式,有以下几个核心类:
建筑类
建筑类包括城堡、兵营和矿场,每个建筑都有自己的属性和行为。
public abstract class Building {
protected String name;
protected int health;
protected int level;
public Building(String name, int health, int level) {
this.name = name;
this.health = health;
this.level = level;
}
public abstract void upgrade();
public abstract void repair();
public String getName() {
return name;
}
public int getHealth() {
return health;
}
public int getLevel() {
return level;
}
}
public class Castle extends Building {
public Castle() {
super("Castle", 1000, 1);
}
@Override
public void upgrade() {
level++;
health += 500;
}
@Override
public void repair() {
health = 1000;
}
}
public class Barracks extends Building {
public Barracks() {
super("Barracks", 500, 1);
}
@Override
public void upgrade() {
level++;
health += 250;
}
@Override
public void repair() {
health = 500;
}
}
public class Mine extends Building {
public Mine() {
super("Mine", 250, 1);
}
@Override
public void upgrade() {
level++;
health += 125;
}
@Override
public void repair() {
health = 250;
}
}
士兵类
士兵类包括步兵和骑兵,每个士兵都有自己的属性和行为。
public abstract class Soldier {
protected String name;
protected int health;
protected int damage;
public Soldier(String name, int health, int damage) {
this.name = name;
this.health = health;
this.damage = damage;
}
public abstract void attack();
public abstract void defend();
public String getName() {
return name;
}
public int getHealth() {
return health;
}
public int getDamage() {
return damage;
}
}
public class Infantry extends Soldier {
public Infantry() {
super("Infantry", 100, 20);
}
@Override
public void attack() {
System.out.println("Infantry attacks with " + damage + " damage.");
}
@Override
public void defend() {
System.out.println("Infantry defends with " + health + " health.");
}
}
public class Cavalry extends Soldier {
public Cavalry() {
super("Cavalry", 150, 30);
}
@Override
public void attack() {
System.out.println("Cavalry attacks with " + damage + " damage.");
}
@Override
public void defend() {
System.out.println("Cavalry defends with " + health + " health.");
}
}
游戏类
游戏类负责管理玩家和敌方的阵营,以及游戏的进行。
public class Game {
private List<Building> playerBuildings;
private List<Soldier> playerSoldiers;
private List<Building> enemyBuildings;
private List<Soldier> enemySoldiers;
public Game() {
playerBuildings = new ArrayList<>();
playerSoldiers = new ArrayList<>();
enemyBuildings = new ArrayList<>();
enemySoldiers = new ArrayList<>();
}
public void addPlayerBuilding(Building building) {
playerBuildings.add(building);
}
public void addPlayerSoldier(Soldier soldier) {
playerSoldiers.add(s