it will depend on the problem being solved as to what is and isn't important
a computer game may need to show a graphical representation of a dice, but they may be able to abstract away all the details about the surface it rolls onto and the physics of the bounce
many programs just need a random number. in which case they don't need to worry about how the dice appears, its weight or how the spots are arranged - they can just find a random number with one line of programming code
you need to think of the main tasks that need to be performed - for example:
display the rules
establish whether this particular game is to be a two-player (or more) game, or one person against the computer
display the board if there is one
play the game
display the result when the game is over
the problem becomes easier to solve when it consists of a number of small subtasks or subprograms
some subprograms may be reusable in other programs, saving development time
subprograms can be reused many times in a program. This reduces the amount of code needed.
code will be easier to maintain and have fewer bugs It makes it easier to adapt the program.