Looking at a problem in detail
The more you break down a problem the more detail you will have about it. That means that when it comes to programming the system you will have less to worry about as all of the logical thinking would of been done. Consider the diagram below -
The add snakes section has been broken down into multiple modules.
Size of snake - Will find a random size for a snake between 2 and 10.
Check square - Will make sure that a ladder or snake is not already on the square. Also it will make sure that the end of a snake or ladder does not have a snake/ladder. Imagine falling on a ladder which takes you straight to a snake!
random number - finds a random number
No start - makes sure that the square has no snake/ladder on it.
No end - makes sure that the end of the snake/ladder has no snake/ladder on it.
This may seem like a lot of work and it is! However it is very easy to forget about some of these details. It is critically important to consider exactly how a problem will work before you even open up your IDE.