However, it takes time, experience, and practice to discover, identify, and make use of these patterns, so the only advice I could give you is, pick one your more harder games, and try and rewrite it more elegantly. You'll instinctively know when you're doing it right: good code should be beautiful to read.
If you would like more specific feedback, look at your "guess the number" game. First, lay off the \n's! If you really need formatting, try and group these into some form of constant. And instead of the fifteen or so newlines at the end of the PersonGuess() method, why not just erase the console screen to start over? That would make more sense in my opinion, it would be more intuitive. That's just a detail though, console formatting is always a bit of a pain using only standard output.
Secondly, your "computer AI" for this game is... defective. The (provably) fastest way for the computer to guess the number is by binary search, which can be concisely implemented in about ten lines of code. I don't C++ so I don't know the exact syntax, but the pseudocode goes like this:
1. Let Lo = 0, Hi = maxNumber. (Lo and Hi are variables)
2. Repeat forever steps 3 to 6.
... 3. Let computerGuess = (Lo + Hi) / 2
... 4. If actualGuess = computerGuess, the computer wins, break out of the loop.
... 5. If actualGuess < computerGuess, then let Hi = computerGuess - 1 and go to step 3.
... 6. If actualGuess > computerGuess, then let Lo = computerGuess, and go to step 3.
This is called binary search and the computer will guess your number in about log2(n) steps on average, where n is the maximum number he can guess. So for n = 100, it'll take the computer about 6-7 steps. For n = 1 million, it'll take it roughly 20 guesses. No need for some strange series of conditions (which, by the way, appear to be a hardcoded form of binary search...)
Unless, of course, you were trying to model a "bad AI" which made bad guesses, but even then you could've just used a variation of the binary search which wouldn't use the midpoint of Lo and Hi at each guess, but a random guess within the search interval for instance, which can end up being faster or slower (but on average the same speed). This way the computer will appear to actually "guess" instead of making mechanical choices. If that makes sense.
Now, this might seem harsh, but you need to learn to code elegantly before moving on to more complex stuff, because, well, it's pretty simple why: you won't be able to get away with your current method in more complex games. You will simply have too many conditions and variables to keep track of. So, no, you are not ready to move on, you need to step back and improve your coding skills. All three games you have attached to this topic are in dire need of rewriting, and you would benefit immensely from doing just that. Though don't hesitate to create new topics if you need specific coding advice while doing this, I'm sure many people would be happy to guide you.
Also, reflect on this quote, which I find to be extremely true to programming in general:
Perfection is achieved, not when there is nothing left to add, but when there is nothing left to take away.