I would like to tell everyone here thanks for the encouragement! Honestly I was in a slump but after I took a break and started programming with a clear head and what not. I was able to complete it in a cool 2 hours. XD I realized all my mistakes and my God it's pathetic. And I should be coming back here with my Pong code to learn collision detection. I once again thank everyone that helped me out here. ^^ Oh and yes I know what the work entails... and I find it exhilarating. I've just been on a personal and professional slump. I guess i'm not super human after all. XD
If something takes you more than twice as long as you expect for reasons you cannot explain, it's probably a good idea to step back and return to it later if you aren't on a huge deadline. A lot of times you'll miss obvious things just because you think you know what's happening in the code because you've been looking at it for hours, when in reality it's all obviously wrong. When you come back to it after taking a nap or something it will usually take you a short time to fix it.
Also those problems are great times to have made friends in your major. It's pretty useful to have another set of eyeballs to say "X is supposed to be in all caps" or "it's == not =." Other students sometimes are great teachers because they come from a similar perspective. They've had to translate the knowledge into their own terms more recently, so they have outlooks that might make it easier for you to understand.
Often it only takes that nudge to get you over the speed bump and you'll be able to understand everything a lot better afterward. It can come from taking a break and getting a running start at the problem or from friends and teachers helping you over it.
You'd also be surprised where you can find inspiration. I remember I had been struggling to find a way to do an algorithm for a few days, and I figured it out at the bakery I was working at at the time because of the way I loaded a rack of buns one night.