On the right hand side of this GitHub page you will find releases.
- Simply click on the latest release and download the
Crawler.<version>.zip
. - Extract the
Crawler
folder from the zip. - Open the
Crawler
and run theCrawler.exe
file.
The objective of the game is simple — reach the the exit of the dungeon without dying!
These are the steps that must be followed in order for the user to start the game.
- Open the
Crawler.exe
executable file via command line or the GUI. - Upon input prompt write
load <map name>
and press ENTER. There are two maps to choose from:Simple.map
Advanced.map
- Once the map is loaded the user can choose to play in advanced mode by typing
advanced
and pressing ENTER. - Finally, enter
play
and then press ENTER to start the game!
Note: When playing in advanced mode, monsters move, can eat coins to get stronger and even attack you.
W : Move Up A : Move Left S : Move Down D : Move Right
Q : Quit
P : Pickup Coins
SPACE : Attack
M
: Monsters
-
: Empty Spaces
#
: Walls
C
: Coins
@
: Player
X
: Exit
Note: once the game has started you do not need to press ENTER to register your action.
The project follows an object oriented approach and most of the entities in the game are represented by classes and objects. I decided to use object orientation because it made the code more maintainable and easier to understand. Additionally, it made implementing some of the advanced features much easier, for example, the player having to press P to pick up coins when standing over them.
Additionally, I decided to include some abstraction to re-use some of the common properties and functionallity between the player and the monsters, such as, attack, health, position, etc. This may not have a big impact on the project at the moment, but it would be beneficial if the project ever gets bigger.
This section is dedicated for links to all of the resources and tutorials I used to implement the functionality of the game. All of the sources I used were from Microsoft Docs.
- Reading a file - I used this source to learn how to read data from a .txt file.
- Abstraction - I used this page as a reference for implementing abstraction.
- Method overriding - I used this as a reference for implementing method overriding.
- Switch Statement - Referred to this page for information about switch statements.
- Console.ReadKey() - I used this page to get an understanding of the
ReadKey()
function and how I can use it in the project.