$25
Your main task is to create a console-based game.
The game has to use:
• I/O to communicate with user[1]
• Map (2D board)
Game visualization
(You have to create text version)
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:
1. Features (12 points)
2. Good practices (5 points)
3. 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?”
Players writes:
“NORTH”
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.
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
1. Use package(s)
2. Use Java built-in classes (3 minimum)
3. Use inheritance
4. Use hermitization
5. Use arrays
6. Use own defined type