This project was created for Object Oriented Programming course on the 2nd semester of CS.
The task at hand was to use C++ OOP to create a simulated world with animals and plants, each having different behaviours and abilities, while following all OOP paradigms.
The world is lively and dynamic, each round animals can fight with each other or reproduce and plants can spread around. There is a simple system of strength and initiative, determining which entities are first to move and which of them should win when in combat.
The player can move, attack or activate a special ability, which grants him invincibility for 3 rounds.
The game features a journal of all events happening in the world for each round, such as animals attacking each other, successful reproduction attempts, an animal consuming a special buff or selected special abilities being activated.
The world is drawn in the console, with each letter indicating a different organism on the map. You have the ability to generate a new map, load from a file and save to it later.
Player controls are shown in the main menu.
Animal | Icon | Ability | Plant | Icon | Ability |
---|---|---|---|---|---|
Wolf | W | no ability | Grass | T | no ability |
Sheep | O | no ability | Guarana | G | when eaten, grants +3 to strength |
Antelope | A | can move by not one, but two squares | Dandelion | M | has twice as many chances to spread |
Turtle | Z | can use his armor to survive 75% of attacks | Wolfberries | J | kill any animal that eats them |
Fox | L | 50% chance to escape when being attacked | Pine Borscht | B | kills anything that comes close |
Used Tabulate library to create nice looking console tables
This project is available under the MIT license