Sunday, February 13, 2011 at 12:29 PM Intermediate steps
So, this week was a much more productive than the last one. I've successfully recovered from sickness and my close relative is doing perfectly fine as well.
There were significant steps made in understanding how the object-oriented programming works. I finally got solid answer what is a class, what is an object, what are instance variables, and so on. In fact, there was a major break-through in the study, so if it was lack of understanding which held me back in the past, now it is the technical 'bricks-and-pieces' of the Java language (which I hope to learn quickly).
I am at 70+ programs in my practice programming, and from now on I am going to stop counting such exercises as full-fledged programs. And from such point of view I've made only 2 programs so far: the game of 'Craps!' and the BreakOut.
'Craps!' is a console game (which means not XBox or PS3, but rather that everything is displayed in textual form in a console window), and based completely on random numbers generator. Player has literally nothing to do, but to hit a key and watch the results of virtual dice rolling.
BreakOut is much more entertaining. This is classics! I've implemented a very basic gameplay: one paddle, one ball, a wall of bricks at the top, and the score system. When the player clicks, the ball starts traveling around the screen, hitting walls and bricks. The speed of the ball doesn't change, the collision system is primitive, no sound, everything on the screen represented through basic shapes of various colors. There is also only one level, and only one try to complete it. At the end there is a message (congratulations or game over).
Now, it took me about 4-5 hours to complete the program (I took breaks of course throughout the day), but still I find it to be somewhat messy and buggy. For example, at some unknown conditions the ball may become invisible right at the beginning of the game! Or it may get 'stuck' in the puddle, and then descend down to the bottom of the screen in a weird way. I've also witnessed a very rare bug when puddle hit by the ball... disappeared!
The program doesn't implement classes (except for the build-in GObjects). So, my second try on BreakOut will be a completely different approach, but that's in the future...