写一个植物大战僵尸的java程序
时间: 2023-03-23 07:00:49 浏览: 89
好的,我可以回答你的问题。以下是一个植物大战僵尸的Java程序示例:
```
import java.util.ArrayList;
import java.util.Scanner;
public class PlantVsZombie {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 创建一个植物数组,用于存放所有的植物
Plant[] plants = {
new Peashooter(),
new Sunflower(),
new CherryBomb()
};
// 创建一个僵尸数组,用于存放所有的僵尸
Zombie[] zombies = {
new OrdinaryZombie(),
new ConeheadZombie(),
new BucketheadZombie()
};
// 创建一个存放植物的阵营
Camp plantCamp = new Camp("植物阵营", plants);
// 创建一个存放僵尸的阵营
Camp zombieCamp = new Camp("僵尸阵营", zombies);
// 创建一个战场
Battlefield battlefield = new Battlefield(plantCamp, zombieCamp);
// 游戏循环
while (true) {
System.out.println("请输入你要进行的操作(1. 放置植物,2. 发射豌豆,3. 显示状态):");
int choice = scanner.nextInt();
switch (choice) {
case 1:
// 放置植物
System.out.println("请选择要放置的植物:");
for (int i = 0; i < plants.length; i++) {
System.out.println((i + 1) + ". " + plants[i].getName() + "(花费:" + plants[i].getCost() + ")");
}
int plantIndex = scanner.nextInt() - 1;
Plant selectedPlant = plants[plantIndex];
System.out.println("请输入要放置的列数(1-" + battlefield.getColumnCount() + "):");
int column = scanner.nextInt() - 1;
battlefield.place(selectedPlant, column);
break;
case 2:
// 发射豌豆
battlefield.shoot();
break;
case 3:
// 显示状态
battlefield.display();
break;
default:
System.out.println("输入无效,请重新输入!");
break;
}
// 检查是否有一方胜利
if (plantCamp.isAllDead()) {
System.out.println("僵尸获胜!");
break;
} else if (zombieCamp.isAllDead()) {
System.out.println("植物获胜!");
break;
}
}
}
}
// 植物类
abstract class Plant {
private String name; // 名称
private int cost; // 花费
public Plant(String name, int cost) {
this.name = name;
this.cost = cost;
}
public String getName() {
return name;
}
public int getCost() {
return cost;
}
// 发射子弹
public abstract Bullet shoot();
}
// 豌豆射手
class Peashooter extends Plant {
public Peashooter() {
super("豌豆射手", 100);
}
@Override
public Bullet shoot() {
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)