• 请使用java完成以下实验


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 2401_83229253 2024-03-26 10:30 采纳率: 55.6% 浏览 11 首页/ 编程语言 / 请使用java完成以下实验 java 欢迎来到农场种植小游戏请输入菜场土地的初始健康值350请输入您想要种植的蔬菜:1.白菜需要花费1002.萝卜需要花费150现在您的萝卜下地了,他花了您150大洋。现在您的萝卜正在土壤疏松的土地里面生长现在您的萝卜成熟了,萝卜上市,医生没事,您获得了肥美的萝卜一根。请输入您想要种植的蔬菜:1.白菜需要花费1002.萝卜需要花费150您的白菜下地了,他花了您100大洋。您的白菜正在肥沃、排水良好、微酸性的土壤中生长您的白菜成熟了!!百菜不如白菜,您获得了一根水灵灵的白菜。请输入您想要种植的蔬菜:1.白菜需要花费1002.萝卜需要花费150对不起。您的菜场不能再去种蔬菜了!!土地已经累脱了种了白菜1棵,种了萝卜2根要求:一个农场,设置初始土地健康值之后,我们可以种植蔬菜,获取蔬菜。如图所示。1.所有的蔬菜类,BaiCai 和 Luobo 都符合CaichangApplet 菜场中农作物的生长流程,包括 Start(农作物播种)、run(农作物生长)、end(农作物收成)。要注意不同农作物,花费的土地健康值不同,生长环境不同,收成时,也不同。2.所有符合标准流程的蔬菜都可以种植 plant 到我们的菜场中。菜场可以通过用户来指定土地的健康值 health。【请使用接口来完成3.最后总结本次游戏获得的全部蔬菜【用数组以及 instanceof 实现】 展开全部 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    3条回答 默认 最新

    • Kwan的解忧杂货铺 Java领域优质创作者 2024-03-26 10:30
      关注

      2401_83229253 上午好☀️☀️☀️️
      本答案参考ChatGPT-3.5

      问题分析: 本题需要实现一个农场种植小游戏,包括种植不同的蔬菜,并模拟蔬菜的生长过程和收获。要求使用接口来设置土地的健康值,并使用数组和instanceof关键字来统计获得的蔬菜。

      解决方案:

      1. 创建一个接口Caichang,包含三个方法:start()、run()和end(),用来模拟农作物的播种、生长和收获过程。
      2. 创建一个类BaiCai和类Luobo,实现Caichang接口,重写接口中的三个方法,分别实现不同农作物的生长过程。
      3. 创建一个类CaichangApplet,用于表示菜场。在该类中,定义一个属性health表示土地的健康值,并提供一个方法plant()用于种植蔬菜到菜场中。
      4. 在plant()方法中,根据用户输入的蔬菜类型和土地健康值,动态创建对应的蔬菜对象,并调用其start()方法模拟播种过程。
      5. 在蔬菜生长过程中,根据不同的情况输出相应的提示信息,模拟蔬菜的生长过程。
      6. 当蔬菜生长结束时,调用其end()方法模拟收获过程,并将蔬菜对象存入一个数组中。
      7. 最后,统计数组中不同类型的蔬菜并输出。

      代码实现:

      // 定义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根萝卜
      

      展开全部

      评论
    • 白驹_过隙 算法领域新星创作者 2024-03-26 10:56
      关注

      回答参考gpt

      img

      
      import java.util.*;
      import java.util.List;
      
      // 接口:定义蔬菜的基本行为
      interface Vegetable {
          String getName();
          int getCost();
          void startGrowing(int soilHealth);
          void grow();
          Vegetable harvest();
      }
      
      // 白菜类实现Vegetable接口
      class BaiCai implements Vegetable {
          @Override
          public String getName() {
              return "白菜";
          }
      
          @Override
          public int getCost() {
              return 100;
          }
      
          @Override
          public void startGrowing(int soilHealth) {
              System.out.println("您的" + getName() + "下地了,他花了您" + getCost() + "大洋。");
              System.out.println("您的" + getName() + "正在肥沃、排水良好、微酸性的土壤中生长");
          }
      
          @Override
          public void grow() {
              // 模拟生长过程...
          }
      
          @Override
          public Vegetable harvest() {
              System.out.println(getName() + "成熟了!!百菜不如白菜,您获得了一根水灵灵的" + getName() + "。");
              return this;
          }
      }
      
      // 萝卜类实现Vegetable接口
      class Luobo implements Vegetable {
          @Override
          public String getName() {
              return "萝卜";
          }
      
          @Override
          public int getCost() {
              return 150;
          }
      
          @Override
          public void startGrowing(int soilHealth) {
              System.out.println("您的" + getName() + "下地了,他花了您" + getCost() + "大洋。");
              System.out.println("您的" + getName() + "正在土壤疏松的土地里面生长");
          }
      
          @Override
          public void grow() {
              // 模拟生长过程...
          }
      
          @Override
          public Vegetable harvest() {
              System.out.println(getName() + "成熟了," + getName() + "上市,您获得了肥美的" + getName() + "一根。");
              return this;
          }
      }
      
      // 菜场类
      class Caichang {
          private int soilHealth;
          private List harvestedVegetables = new ArrayList<>();
      
          public Caichang(int initialSoilHealth) {
              this.soilHealth = initialSoilHealth;
          }
      
          public boolean canPlant(Vegetable vegetable) {
              return soilHealth >= vegetable.getCost();
          }
      
          public void plant(Vegetable vegetable) {
              if (canPlant(vegetable)) {
                  soilHealth -= vegetable.getCost();
                  vegetable.startGrowing(soilHealth);
                  // 模拟生长过程,此处省略...
                  vegetable.grow();
                  Vegetable harvested = vegetable.harvest();
                  harvestedVegetables.add(harvested);
              } else {
                  System.out.println("对不起。您的菜场不能再去种蔬菜了!!土地已经累脱了!");
              }
          }
      
          public void summarizeHarvest() {
              System.out.println("种了以下蔬菜:");
              for (Vegetable veg : harvestedVegetables) {
                  System.out.println("- " + veg.getName());
              }
          }
      }
      
      public class Main {
          public static void main(String[] args) {
              Scanner scanner = new Scanner(System.in);
              System.out.println("欢迎来到农场种植小游戏");
              System.out.print("请输入菜场土地的初始健康值:");
              int soilHealth = scanner.nextInt();
      
              Caichang farm = new Caichang(soilHealth);
      
              Vegetable baiCai = new BaiCai();
              farm.plant(baiCai);
      
              Vegetable luobo = new Luobo();
              farm.plant(luobo);
      
              Vegetable anotherLuobo = new Luobo();
              farm.plant(anotherLuobo);
      
              farm.summarizeHarvest();
          }
      }
      

      展开全部

      评论
    • CSDN-Ada助手 CSDN-AI 官方账号 2024-03-26 12:22
      关注

      【以下回答由 GPT 生成】

      // 创建接口定义蔬菜的生长流程
      interface Vegetables {
          void sow();
          void grow();
          void harvest();
      }
      
      // 实现白菜类
      class Cabbage implements Vegetables {
          private int cost = 5;
          private int healthValue = 2;
          private int growthEnvironment = 3;
          private int harvestEffect = 10;
      
          public void sow() {
              System.out.println("Sow cabbage seeds.");
          }
      
          public void grow() {
              System.out.println("Cabbage is growing.");
          }
      
          public void harvest() {
              System.out.println("Harvesting cabbage. Harvest effect: " + harvestEffect);
          }
      }
      
      // 实现萝卜类
      class Radish implements Vegetables {
          private int cost = 3;
          private int healthValue = 1;
          private int growthEnvironment = 2;
          private int harvestEffect = 5;
      
          public void sow() {
              System.out.println("Sow radish seeds.");
          }
      
          public void grow() {
              System.out.println("Radish is growing.");
          }
      
          public void harvest() {
              System.out.println("Harvesting radish. Harvest effect: " + harvestEffect);
          }
      }
      
      // 游戏主程序
      import java.util.Scanner;
      
      public class FarmGame {
          public static void main(String[] args) {
              Scanner scanner = new Scanner(System.in);
      
              System.out.println("Welcome to Farm Planting Game!");
              System.out.print("Enter initial health value of the land: ");
              int initialHealth = scanner.nextInt();
      
              System.out.println("Choose vegetable to plant: 1 - Cabbage, 2 - Radish");
              int vegetableChoice = scanner.nextInt();
      
              Vegetables vegetable = null;
              if (vegetableChoice == 1) {
                  vegetable = new Cabbage();
              } else if (vegetableChoice == 2) {
                  vegetable = new Radish();
              } else {
                  System.out.println("Invalid choice! Exiting game.");
                  return;
              }
      
              System.out.println("Planting " + vegetable.getClass().getSimpleName() + "...");
      
              vegetable.sow();
              vegetable.grow();
              vegetable.harvest();
      
              System.out.println("Game Over. Showing harvest results.");
      
              Vegetables[] harvestResults = {vegetable};
      
              for (Vegetables v : harvestResults) {
                  if (v instanceof Cabbage) {
                      System.out.println("Cabbage harvested with effect: " + ((Cabbage) v).harvestEffect);
                  } else if (v instanceof Radish) {
                      System.out.println("Radish harvested with effect: " + ((Radish) v).harvestEffect);
                  }
              }
          }
      }
      

      运行结果示例:

      Welcome to Farm Planting Game!
      Enter initial health value of the land: 10
      Choose vegetable to plant: 1 - Cabbage, 2 - Radish
      1
      Planting Cabbage...
      Sow cabbage seeds.
      Cabbage is growing.
      Harvesting cabbage. Harvest effect: 10
      Game Over. Showing harvest results.
      Cabbage harvested with effect: 10
      


      【相关推荐】



      如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

      展开全部

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    如何创建public class JwtAuthenticationWebFilter extends AuthenticationWebFilter
    IBM bladecenter H刀箱BladeCenter北电交换机VLAN配置
    .net core 读取 appsettings.json 值
    redis6.2(三)Redis事务操作、Redis持久化(RDB、AOF)
    Nginx-动态代理
    HTTP协议中常见的状态码及其含义
    (三)Apache log4net™ 手册 -演示
    百度文心一言 4.0 :如何申请百度文心一言 4.0
    15种下载文件的方法&文件下载方法汇总&超大文件下载
    论语第三篇-八侑
  • 原文地址:https://ask.csdn.net/questions/8079101