see that confuses the crap out of me only because it seems backwards. I read that like this tell me if im wrong. difficulty is less than or equal to 0 OR difficulty is greater than or equal to 4... so the teh true value would be passed if difficulty was higher than 4 or less than 0
That while loop will run while difficulty is less than or equal to 0 and greater or equal to 4 as you said. The point of that is to keep the user entering in numbers inside the loop until it's between 0 and 4.
Once it's between 1-3 it will skip that loop and continue on to whatever is next.