This game was made by Java GUI. It is an educational application for teaching programming. The target users of the application are elementary school children who are learning about basic programming concepts.
The role play game is used in a cute style and it has a story behind this. The princess wants to rescue her lovely little puppy, which was kidnapped to the top of the mountain. This story is divided in four different levels with different amount of sublevels. The first level takes place at the village where the main character learns the basic operation of object oriented programming. After completing she gets outside the village and enters the forest, so the second level will be there. Here the children will enhance the ability. The same will happen in the mountain, the third level. At the last level she will fight the boss to get her puppy back.
The following table will summarize the content for each level:
Abstract classes
Our abstract classes are LevelPage and LevelSubPage. They are our basic templates for each level page and sub level page. In LevelPage, we have a abstract method named showSubLevel. It should be overridden in every page which can enter different levels. Also, a button for returning to the last page is created by this super class.
In LevelSubPage, this abstract class is the key class of our project. All sub level pages extend from it. There are many method including showGameComplete, highlightText , resizeImage, showNextInfo and so on. They can be used in all sub level pages and then we can just change some code here directly.
As we mentioned above functions, we can edit our basic frame easier by abstract classes.
Inheritance classes
After we introduced abstract classes, we have Level1Page, Level2Page, Level3Page and Level4Page which extend LevelPage. Level1Sub1Pag, Level1Sub4Page and so on, which extend LevelSubPage. To use the input panel, we have another abstract class named LevelSubPageWithInputButton which extends LevelSubPage. Level1Sub2Page and other classes can run questions by the panel according to extend LevelSubPageWithInputButton. We have many common methods can be used and if we want to edit them, just edit in super class.
Interface
We chose the RegularPage as an interface. It offers some common methods which must be overriden in the classes which implement it. The interface is useful because many classes need those methods and it prevents from making spelling mistakes or from forgetting to use the methods.
Final class
The GoPage class is a good example for a final class. It has only one responsibility which is implemented inside the only method of this class. This method is like an utility tool. It can be called in any class to go from one page to another. It should always act the same. That is why the method is static so that we don’t need to create an object of this class and can just call the method with “GoPage.goSubPage(…)”. Since this class has only this functionality and should not be changed we made it final to prevent from getting inherited.
Polymorphism
We have a Mob class and Boss class that extends the Mob class. And we have the Princess class that has attack(Mob target) method. Although we have basic mob(pig) and boss (dino), the princess can attack both of them by
public void attack( Mob target, int arrowSpeed, int distanceX, int distanceY)
[Leader] CHEN , YIWEN
Organize all code.
Design interface and super class.
Provide all images what we need.
Design Level 1 and its document explanation.
HO, VIET HA
Design sound and document preparation.
GILLMANN, KAY FELIX
Design Level 2 and its document explanation.
ZAWADZKI, SEBASTIAN DAVID
Design Level 3 and its document explanation.
김승섭
Design Level 4 and its document explanation.