https://github.com/rogerfan48/i2p2-towerdefense
Freshman (2024 Spring) Introduction to Programming II - Mini Project - Tower Defense
https://github.com/rogerfan48/i2p2-towerdefense
allegro cpp
Last synced: 10 months ago
JSON representation
Freshman (2024 Spring) Introduction to Programming II - Mini Project - Tower Defense
- Host: GitHub
- URL: https://github.com/rogerfan48/i2p2-towerdefense
- Owner: rogerfan48
- Created: 2024-05-27T08:20:49.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-06-17T12:47:43.000Z (about 1 year ago)
- Last Synced: 2025-07-04T13:10:19.014Z (about 1 year ago)
- Topics: allegro, cpp
- Language: C++
- Homepage:
- Size: 29.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Freshman (2024 Spring) Introduction to Programming II
## Mini Project - Tower Defense
- a tower defense game developed in C++ using the Allegro Library
- features:
- Continuous enemy waves that players must defend against by strategically placing towers. Players lose one life point if enemies reach the bottom-right corner, and the game ends when life points reach zero.
- Score-based system where eliminating enemies earlier yields higher points (Score distribution can be viewed via the Debug button)
- Multiple defensive options including:
- Single-target damage towers
- Magic towers for area-of-effect damage
- Shovel tool for tower removal (75% cost refund)
- Global bomb ability dealing minor damage to all enemies on screen
- Real-time display of current difficulty level, money, score, remaining lives, and surrender button along with hotkey indicators
- Quick-access hotkeys for all towers and tools, marked with red letters in the top-left corner of each item
- Local scoreboard system that persists between game sessions
- Paginated scoreboard featuring 10 records per page with a maximum capacity of 20 records
- `INFO:` coded and designed based on the template given from the TAs, not fully initiated by myself
### Project Deliverables
- Gameplay Screenshot
- 
- Scoreboard Screenshot
- 
- Here are the steps to run the game (in macOS)(see [documentation/](https://github.com/rogerfan48/Project-Fresh1-I2P1-Pacman/blob/main/documentation) if using other OS):
- Download Necessary Packages
```shell
brew install cmake
brew install pkg-config
brew install allegro
brew install gcc
brew install ninja
```
- To compile
```shell
sh macos.sh
```
### Others
- the **coursework** of I2P2: [I2P2-Course](https://github.com/rogerfan48/I2P2-Course)
- **Final Project** of I2P2: [I2P2-ArenaLegends](https://github.com/rogerfan48/I2P2-ArenaLegends)