# Zombie ## How to run application ```bash docker-compose run app ``` Or if you have `Go` v1.13 installed locally, then run ```bash go run cmd/main.go ``` ## How to run tests ```bash docker-compose run app go test ./... -cover ``` ## Where to start to read the code Please read the code from the entry point `cmd/main.go` ### How to application works * Load input to initialise the application, it will set up the `grid`, `zombie`, `creatures` and `commands` * Make the zombie to start moving, as well as the transformed zombies. * Print out the result. ## Assumptions * All the input data is valid ## Highlights * Used `TableDrivenTests` * Used `interface` and `map` to model the `command` part to avoid `if else` checks * Built a `First-In-First-Out` structure `nextZombie` in `application` to represent the next zombie to run. * Had `docker compose` built in, you don't need to have Go installed locally. One command to bring up the whole application.