The hardest thing to learn is to separate responsibilities. it's better to have a bunch of methods that each do one small thing, than one monolithic method that does <everything>.
remember to reuse code. For example, you don't need three methods to generate the values on the three wheels...you need one method, and then you call it three times. So you may have a method "getSpinResult", and it calls "getSingleWheelResult" three times.
Compile and
test your code about 100x more often than you think
you should.
Spend 90% of your time THINKING, and only 10% of your time TYPING. I'd probably spend a day or two thinking about what my program needs to do, and how i'd break it all down, before I wrote a single line of code.