http://www.ntu.edu.sg/home/ehchua/programming/java/j2a_basicsexercises.html Recommended exercises: SumAndAverage CheckerBoard fibonacci Bin2Dec GradeStatistics Another challenge: Write a high-low guessing game; have a person think of the number, and have the computer try to guess it After each guess, the human will tell the computer whether it's higher or lower Another challenge: Animal Farm Create an `abstract class` called `Animal` that has a `mass` and a `name` * All animals should have a constructor which gives them a `mass` and a `name` when they are created * All animals can `eat` an `amount`, which increases their `mass` by `amount` * All animals can also `move` a `distance`, which decreases their `mass` by `distance` * Everybody can use `getName` to get the name of an animal * Everybody can use `getMass` to get the mass of an animal Create a class called `Cat` that `extends Animal` * When a cat `speak`, it prints `Meow!` Create a class called `Dog` that `extends Animal` * When a dog `speak`, it prints `Woof!` Create a class called `Farm` * The `Farm` has a `main` method * In the `main` method, the `Farm` creates a `Cat` with a `mass` of `12.2` named `Cloud` * In the `main` method, the `Farm` creates a `Dog` with a `mass` of `15.4` named `Spot` In the `main` method, the `Farm` will: * print the names of both animals and their masses. * Ex. `Spot is a Dog with a mass of 15.4.` * Then, `Cloud` will `eat` `0.2`, `move` `0.8`, and `speak`. * `Spot` will then `eat` `0.4`, `move` `0.6`, and `speak`. * `Farm` will print the names of both animals and their masses once again. You will probably get weird numbers like 15.200000000001. This is imprecision with floating point numbers, and is normal Animal Farm step 2: * All animals can also be created with only a `mass`. * If an animal is created without a `name`, it's name is set to `Steve` by default. * All animals now also have a `setName` method which sets their `name`. * All animals can `printInformation`, which prints information on the specific animal. * Ex. `Spot is a Dog with a mass of 15.4` Create a class called `Hummingbird` * All `Hummingbird` have a `wingspan`. * Hummingbirds must be created with a `mass`, `wingspan`, and `name`. * When a Hummingbird `speak`, it prints `Tweet!` * Everybody can use `getWingspan` to get the `wingspan` of a Hummingbird. `Farm` should: * Create an array of 5 `Animal` that contains: * 1 `Dog` with `mass` `10` * 1 `Dog` with `mass` `15` and `name` `Fido` * 1 `Cat` with `mass` `13` and `name` `Cloud` * 1 `Hummingbird` with `mass` `1.1`, `name` `Birdie`, and `wingspan` `2.2` * 1 `Dog` with `mass` `5` * `printInformation` on all `Animal` in the array