Homework 2: Planting a Garden

Write a class called Garden to represent a dividable plot of land that can be planted, watered, and harvested.

Create an Enum called Dirt. Start with the code below. You are welcome to add methods to it if you would like.

public enum Dirt {
     EMPTY, SEED, PLANT;
}

You will have two components, an array of Dirt for the plots, and a String to hold the type of crop planted in this garden;

Your constructor method will bring in an initial number of plots and a crop type. It should initialize the plots so there are the required available spaces, and set them all to EMPTY. Also save the crop type of plants grown.

For example:

Garden g = new Garden(5, "garlic");

You will need three additional methods:

  • public void plant(int plotNum) which if the specified garden plot is EMPTY, convert it to a SEED.

  • public void water() which will check each plot, and if it is a SEED, set it equal to a PLANT.

  • public String harvest(int plotNum) which tries to harvest a plant at the specified garden plot. If you find a PLANT there, set the space to EMPTY and return the type of plant grown in this garden. If there is a SEED, return the string "Needs Water!". Otherwise return "Nothing but Dirt...".

Also, write a Main class that includes a public static void main(String[] args) method that fully tests and demonstrates that your class is working.

You may use IntelliJ to test your code. Turn in a copy of your Garden.java, Dirt.java, and Main.java files through Teams by the due date.