Your main task is to create a console-based game.
The game has to use:
- I/O to communicate with user1
- Map (2D board)
Game visualization
(You have to create text version)
1 Terminal
® 2021 by PJAIT
Scoring
To gain 100% of project’s points, you have to choose a collection of features for your game and implement it. The final score includes:
- Features (12 points)
- Good practices (5 points)
- Using Java API (3 points)
Features table
Difficulty Name Example Gain
|
Easy |
Store information about player |
You can create a class for storing data like health, mana, points, resources, money etc. |
1 pt. |
|
Easy |
Place player on the map |
You can set (x,y) position related to map |
1 pt. |
|
Easy |
Allow player to move on the board |
Game asks: “Where do you want to move?” So, player is one spot up |
1 pt. |
|
Easy |
Add some elements on map |
If player is present on element’s spot, it will decrease health points or increase money |
1 pt. |
|
Medium |
Add randomness |
Every time you play, elements are in different position |
2 pts. |
|
Medium |
Add 4 types of elements |
There should be 4 different actions. Adding different amount of money is still just one action. |
2 pts. |
|
Medium |
Add NPCs |
Player can meet a game character to interact with. |
2 pts. |
|
Medium |
Allow to lose / win |
If health < 0, then player dies. If player achieves something, the player wins etc. |
2 pts. |
® 2021 by PJAIT
|
Hard |
Make world infinite |
Map increases its size and generates content by itself |
3 pts. |
|
Hard |
Add option to upgrade |
Upgrade is like adding availability to move 2 fields instead of one. |
3 pts. |
|
Hard |
Use hexagons instead of squares to build the map |
You can move in 6 directions. |
3 pts. |
|
Hard |
Allow player to change a tile |
Player can build bridge to cross the river |
3 pts. |
Good practices
Your code should be readable and clean:
1. Class does one job.
2. Method should be maximum 30 lines long.
3. Class should have minimal static parts.
4. Create many classes.
5. Class should have maximum 10-15 methods.
6. Don’t use break or continue for loops.
7. Name your variables to make it easy to understand.
8. Use build-in code prettifier (in Intellij: Code -> Format)
Java API
- Use package(s)
- Use Java built-in classes (3 minimum)
- Use inheritance
- Use hermitization
- Use arrays
- Use own defined types
Submitting
What do I need to prepare?
1. Solution in source folder
2. List of features according to features table (remember to gain 12 points in total)
Some course credit regulations
- While submitting a project please be prepared to answer some theoretical questions. If asked by the teacher, each student is expected to be able to modify a code. Not answering an question or not modifying the code results 0p.
- Every project recognised with a plagiarism is disqualified without a possibility of retake.
- You should pack and send the entire project archive, not just the source code files.
- Projects should be sent as a ZIP file to the appropriate task assigned in the Tasks tab on MS Teams platform.
- A ZIP archive should be named according to the following scheme:
PPJ_EN_PRO_GRXXc_sXXXXX_IDE.zip
- GRXXc is the number of your group. Replace XX with a group number,
- sXXXXX is your index number,
- IDE means the IDE name you used.
- Projects named contrary to the description will not be checked and will receive 0 points.










