- the rover understands your commands (e.g. from command line) of the form:
- forward - moves one step forward
- left, right - makes 90 degrees turn left or right
- if the rover gets the forward command and there is a stone in front of it, it just ignores it; you can optionally print a message to signal that
- the rover does not have the knowledge of the terrain - it keeps a reference to a board [object] which actually knows where the stones are and tells the rover whether a given move is possible or not
- the rover should not be allowed to move outside of the board
I have had the rare opportunity of watching and being part of the change that the software industry has gone through throughout over 20 last years. This blog is a collection of my reflections on pursuing agility path. It includes observations and advice regarding development teams and notes on useful engineering practices. Enjoy! Piotr Górak.
Tuesday, August 6, 2013
Code Kata: A rover
Another game-like exercise. A rover moves over a board with X and Y dimensions. Some places on the board are filled with stones and this is where the rover cannot move onto. Your task is to implement the rover and the board with the following requirements and restrictions:
We may often come across a piece of code that was written without Unit Tests at all. In addition, the piece of code may be dealing with IO l...
Google Mock provides several ways to maintain state inside mock objects. One way of implementing state maintenance is with SaveArg . Consid...
Google Mock provides a way to return newly created objects from a mock method. Suppose we have a Generator class that is supposed to ...
Can we verify that a mock object is properly destroyed? Of course! There is a couple of subtle differences between mocking regular func...
Requirements have a long history in software industry. We all have heard or read terms like: requirements definition, requirements managemen...