## Linux compilation

    > mkdir build
    > cd build
    > cmake -DCMAKE_BUILD_TYPE=Debug ..
    > make

## Exercise 1

* Go to the directory `Ship` and create class `ShipBuilder`. The mandatory fields are:
    * name
    * capacity
    * time
* The non-mandatory fields are:
    * difficultStrategy -> default value should be set as **Easy**
    * crew -> default value should be set as **10**
    * durability -> default value should be set as **1000**
    * armor -> default value should be set as **0**
    * PrintVisitor -> default value should be set as **Pretty Print**
* Try to build your own `Ship`!

## Exercise 2

* Go to the directory `Ship` and finish implementation of class `ShipJsonBuilder`. You should allow building 3 types of ship:
    * Brig
    * Frigate
    * Galoen
* If you want to read a JSON filed, just use operator[], example: `_shipsData["brige"]["armor"]`
* Try to build a ship using a new builder.
* Try to change some values in `ships.json` and run binary without recompilation. You should see new values!

## Exercise 3

* Go to the directory `Ship` and create abstract class `FruitFactory`.
* Create `FruitFactory`
* Create `ItemFactory`
* Create `AlcoholFactory`
* Test in main.cpp if you can create any type of cargo
* How to handle scenario, when different cargo takes other arguments?
