posted 12 years ago
it helps if you break the problem down into the atomic parts. My first refinement would be to list three the three major things that need to be accomplished
1) generate a random number
2) Get input from the user
3) Compare two numbers
Notice that none of those three things depend on each other in ANY way. It doesn't matter how I got the two numbers...but once I have them, I need to compare them. It doesn't matter what i'm going to DO with the number I get from the user, I just have to get one.
Once you break it down into problems like that, you then focus on solving ONE of them, with no consideration for the others. To solve one of those problems, you may break it down into sub-components. Getting the number from the user may be broken down into:
2a) prompt the user
2b) get input from keyboard
2c) Validate data
2d) if data not valid, have user try again.
Now you focus on solving one of those things. some of these may need to be broken down even further, after which you focus on solving one of those steps...etc.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors