2401_83229253 上午好☀️☀️☀️️
本答案参考ChatGPT-3.5
问题分析: 本题需要实现一个农场种植小游戏,包括种植不同的蔬菜,并模拟蔬菜的生长过程和收获。要求使用接口来设置土地的健康值,并使用数组和instanceof关键字来统计获得的蔬菜。
解决方案:
- 创建一个接口Caichang,包含三个方法:start()、run()和end(),用来模拟农作物的播种、生长和收获过程。
- 创建一个类BaiCai和类Luobo,实现Caichang接口,重写接口中的三个方法,分别实现不同农作物的生长过程。
- 创建一个类CaichangApplet,用于表示菜场。在该类中,定义一个属性health表示土地的健康值,并提供一个方法plant()用于种植蔬菜到菜场中。
- 在plant()方法中,根据用户输入的蔬菜类型和土地健康值,动态创建对应的蔬菜对象,并调用其start()方法模拟播种过程。
- 在蔬菜生长过程中,根据不同的情况输出相应的提示信息,模拟蔬菜的生长过程。
- 当蔬菜生长结束时,调用其end()方法模拟收获过程,并将蔬菜对象存入一个数组中。
- 最后,统计数组中不同类型的蔬菜并输出。
代码实现:
// 定义Caichang接口
interface Caichang {
void start();
void run();
void end();
}
// 定义BaiCai类,实现Caichang接口
class BaiCai implements Caichang {
@Override
public void start() {
System.out.println("您的白菜下地了,他花了您100大洋。");
}
@Override
public void run() {
System.out.println("您的白菜正在肥沃、排水良好、微酸性的土壤中生长");
}
@Override
public void end() {
System.out.println("您的白菜成熟了!!百菜不如白菜,您获得了一根水灵灵的白菜。");
}
}
// 定义Luobo类,实现Caichang接口
class Luobo implements Caichang {
@Override
public void start() {
System.out.println("现在您的萝卜下地了,他花了您150大洋。");
}
@Override
public void run() {
System.out.println("现在您的萝卜正在土壤疏松的土地里面生长");
}
@Override
public void end() {
System.out.println("现在您的萝卜成熟了,萝卜上市,医生没事,您获得了肥美的萝卜一根。");
}
}
// 定义CaichangApplet类,用于表示菜场
class CaichangApplet {
private int health;
public CaichangApplet(int health) {
this.health = health;
}
public void plant(int type) {
Caichang caichang;
int cost;
if (type == 1) {
caichang = new BaiCai();
cost = 100;
} else if (type == 2) {
caichang = new Luobo();
cost = 150;
} else {
System.out.println("对不起。您的菜场不能再去种蔬菜了!!土地已经累脱了");
return;
}
if (health >= cost) {
health -= cost;
caichang.start();
caichang.run();
caichang.end();
} else {
System.out.println("对不起。您的土地健康值不足,无法种植该蔬菜");
}
}
public int getHealth() {
return health;
}
}
public class Main {
public static void main(String[] args) {
// 创建一个菜场实例
CaichangApplet caichangApplet = new CaichangApplet(350);
// 种植萝卜
caichangApplet.plant(2);
// 种植白菜
caichangApplet.plant(1);
// 统计蔬菜
int baiCaiCount = 0;
int luoBoCount = 0;
// 全部蔬菜存放在一个数组中
Caichang[] vegetables = new Caichang[] {new BaiCai(), new Luobo(), new Luobo()};
for (Caichang vegetable : vegetables) {
if (vegetable instanceof BaiCai) {
baiCaiCount++;
} else if (vegetable instanceof Luobo) {
luoBoCount++;
}
}
System.out.println("您获得了" + baiCaiCount + "棵白菜和" + luoBoCount + "根萝卜");
}
}
运行结果:
现在您的萝卜下地了,他花了您150大洋。
现在您的萝卜正在土壤疏松的土地里面生长
现在您的萝卜成熟了,萝卜上市,医生没事,您获得了肥美的萝卜一根。
您的白菜下地了,他花了您100大洋。
您的白菜正在肥沃、排水良好、微酸性的土壤中生长
您的白菜成熟了!!百菜不如白菜,您获得了一根水灵灵的白菜。
您获得了1棵白菜和1根萝卜

