Browse Source

Update README.md

Git-Leon 6 years ago
parent
commit
4b967e0fd2
No account linked to committer's email
1 changed files with 52 additions and 20 deletions
  1. 52
    20
      README.md

+ 52
- 20
README.md View File

@@ -1,33 +1,65 @@
1
-# Froilan The Farmer
1
+# Ol' McFroilan Had a Farm
2 2
 * **Objective:** To implement a system indicative of a Farm environment
3 3
 * **Purpose:** To demonstrate [multi-inheritence design issues](https://www.geeksforgeeks.org/java-and-multiple-inheritance/)
4 4
 
5
+# Setting the Plot...
5 6
 
6
-* Consider a system in which 
7
+* Consider a system in which
8
+	* `Eater` can `eat` an `Edible `object.
7 9
 	* `NoiseMaker` can `makeNoise`
8
-	* `Animal` is a `NoiseMaker`
9
-		* `Horse` is a `Animal`
10
-		* `Dog` is a `Animal`
10
+	* `Animal` is a `NoiseMaker` and `Eater`
11
+		* `Horse` is an `Animal` and `Rideable`
12
+		* `Chicken` is an `Animal` and a `Produce` which `yield` an `Egg`.
11 13
 
12 14
 	* `Rider` can `mount` and `dismount` a `Rideable` object.
13
-
15
+	* `Botanist` can `plant` a `Crop` in a `CropRow`.
16
+	* `CropRow` can store a single row of `crop`.
17
+	* `Field` can store many `CropRow`
14 18
 	* `Vehicle` are `NoiseMaker` and `Rideable`
15
-		* `FarmVehicle` can `harvest` a `Produce`
16
-			* `Tractor` are `FarmVehicle`
17
-			* `CropDuster` are `FarmVehicle`
19
+		* `FarmVehicle` can `operate` on a `Farm`
20
+			* `Tractor` is a `FarmVehicle` which can `harvest` a `Crop`.
21
+
22
+		* `Aircraft` are `Vehicle` which can  `fly`
23
+			* `CropDuster` is a `FarmVehicle` and `Aircraft` which can `fertilize` a `CropRow`
24
+
25
+
26
+	* `Produce` can `yield` an `Edible` object depending on their `hasBeenFertilized` [flag](https://en.wikipedia.org/wiki/Boolean_flag).
27
+		* `Crop` is a `Produce` which can `yield` an `Edible` object depending on its `hasBeenHarvested` and `hasBeenFertilized` flag.
28
+			* `CornStalk` is a `Crop` which can `yield` a `EarCorn`
29
+			* `TomatoPlant` is a `Crop` which can `yield` a `Tomato`
30
+
31
+	* `Person` can `makeNoise` and can `eat` an `Edible` object.
32
+	* `Farmer` is an `Eater`, a `Rider`, a `Botanist`, and a `Person`.
33
+	* `Stable` stores many `Horse`.
34
+	* `FarmHouse` stores many `Person`
35
+	* `ChickenCoop` stores many `Chicken`
36
+	* `Farm` stores many `Stable`, many `DogHouse`, and a single `FarmHouse`
37
+
18 38
 
19
-		* `Aircraft` can  `fly`
20
-			* `Plane` are `Aircraft` which can `cruise`
21
-			* `Jet` are `Aircraft` which can `zoom`
22
-			* `Helicopter` are `Aircraft` which can `hover`
39
+* `Froilan`, a `Farmer` has a `Farm` consisting of
40
+	* 1 `Field` of 5 `CropRow`.
41
+		* Row 1 has `Corn`
42
+		* Row 2 has `Tomato`
43
+		* Row 3 and beyond grows arbitrary vegetation.
23 44
 
24
-	* `Produce` can `yield` an `Edible` object.
25
-		* `CornStalk` can `yield` a `EarCorn`
26
-		* `TomatoPlant` can `yield` a `Tomato`
45
+	* 15 `Chicken` across 4 `ChickenCoop`
46
+	* 10 `Horse` across 3 `Stable`.
47
+	* 5 `Dog` across 2 `DogHouse`
48
+	* 2 `FarmVehicle`
49
+	* 1 `Aircraft`
50
+	* His sister, `Froilanda`, is a `Pilot` who uses a `CropDuster`.
27 51
 
28
-	* `Person` can `eat` an `Edible` object and `makeNoise`.
29
-	* `Farmer` are `Rider` and `Person`
30 52
 
53
+# The Plot Thickens...
54
+* Create a separate Test class for each day in the following scenario...
55
+* As a farmer, Froilan must stick to a rigorous agricultural routine.
56
+	* Every morning, `Froilan` and `Froilanda` begin their morning by
57
+		* Riding each `Horse` in each `Stable`.
58
+		* Feeding each `Horse` 3 ear of `Corn`.
59
+		* For breakfast,
60
+			* `Froilan` eats 1 `EarCorn`, 2 `Tomoato`, and 5 `Egg`.
61
+			* `Froilanda` eats 2 `EarCorn`, 1 `Tomoato`, and 2 `Egg`.
31 62
 
32
-* Consider 
33
-	* `Froilan` is a `Farmer` who has 5 `Horse`
63
+	* `Sunday`, `Froilan` plants 3 different type of `Crop` in his first, second, and third `CropRow`.
64
+	* On `Monday`, his sister, `Froilanda` uses the `CropDuster` to `fly` over the `Field` and `fertilize` each of the `CropRow`
65
+	* On `Tuesday`, `Froilan` uses his `Tractor` to `fertilize` each `Crop` in each `CropRow`.