Viva La Duck
Our next code example will illustrate several of the SOLID design principles applied to our Go implementation.
In our Viva La Duck application, our duck must visit a number of ponds looking for bugs to eat. To keep things simple, we'll assume that each stroke will require the duck to eat one bug. Each time the duck paddles its feet (one stroke), the duck's supply of strokes is decreased by one.
We're not concerned with how the duck moves from pond to pond, but rather the number of strokes the duck must make to traverse the length of the pond. If a pond has bugs to eat, they will be found on the other side of the pond. If the duck runs out of energy, it dies.
Our program is a self-contained runnable Go source file. Its package name is main
and it has a main()
function. We'll use the DASHES
constant later when we print the statistics indicating what the duck encountered at each pond.
The Pond
struct contains the state of each pond, that is, the number of bugs it supplies for the duck...