Skip to content

ShahabAhmed01/SIPAR-v2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SIPAR v2 — Defense Command System

A real-time ASCII air defense simulation for Windows console.

Modern C++17 • Zero external dependencies • Custom data structures

C++17 Windows MIT


Overview

Command a radar defense network. Track and intercept missiles, drones, and stealth aircraft across 5 escalating waves. Built entirely with custom data structures and the Win32 Console API — no SDL, SFML, or ncurses.

┌─────────────────────────────────────────────────┐
│  ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  │
│  █  S  I  P  A  R    v  2  .  2           █  │
│  █     DEFENSE COMMAND SYSTEM            █  │
│  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  │
└─────────────────────────────────────────────────┘

Quick Start

git clone https://github.com/ShahabAhmed01/SIPAR-v2.git
cd SIPAR-v2
cmake -B build && cmake --build build
./build/sipar.exe

Requirements: MinGW-w64 (g++ 11+) on Windows 10/11

Features

Feature Description
5-Wave Missions Escalating difficulty across 5 waves
4 Difficulty Levels Easy → Normal → Hard → Nightmare
Auto & Manual Targeting Press T to toggle WASD crosshair mode
Special Weapons Shield (Q), EMP (1), Flare (2), Nuke (3)
Stealth Enemies Flickering ? targets — 40% auto-target miss rate
Combo System 3 kills = ×2, 5 kills = ×3 multiplier
Wave Rewards Bonus missiles and points for each wave cleared
Victory Mode Complete all 5 waves for +1000 bonus!
Particle Effects ASCII explosion particles (toggleable)
Radar Animation Rotating sweep animation
High Scores Top 10 leaderboard with persistence
Settings Menu Toggle sound, particles, screen shake, FPS display
Statistics Tracking Track games played, kills, waves completed

Data Structures

SIPAR showcases custom implementations of fundamental computer science data structures:

BST<T>           → Priority-ordered threat targeting (O(log n))
MinHeap<T>       → Wave scheduling by threat weight (O(log n))
DoublyLinkedList → Event log, max 8 entries (O(1) insert/delete)
ThreatMap        → 5×5 adjacency matrix for radar sectors (O(1) lookup)

Controls

Key Action
SPACE Fire missile / Select menu
W/S Navigate menu
T Toggle manual targeting
WASD Move crosshair (manual mode)
Q Deploy shield
1 / 2 / 3 EMP / Flare / Nuke
P Pause
M Mute audio
E Exit mission / Back
ESC Back to menu

Wave Rewards

Complete each wave to earn:

  • +5 missiles (increasing by +1 each wave)
  • +100 × wave number points bonus
  • +1 shield charge (up to max 3)

Complete all 5 waves for VICTORY (+1000 bonus points)!

Scoring

Action Points
Destroy Missile (X) +100
Destroy Drone (.) +50
Destroy Stealth (?) +50
Wave Clear Bonus +100 × wave
Victory Bonus +1000
Combo (3 kills) ×2
Combo (5 kills) ×3
Breach -50
Friendly Fire -100
Nuke Strike -200

Project Structure

SIPAR-v2/
├── src/
│   ├── game.cpp/h        # State machine & main loop
│   ├── sipar.cpp/h       # Core game engine
│   ├── renderer.cpp/h    # Win32 console rendering
│   ├── input.h           # Keyboard abstraction
│   ├── audio.h           # Beep sound effects
│   ├── highscore.h       # Score persistence
│   ├── settings.h        # Settings & statistics
│   ├── target.h          # Entity system
│   ├── bst.h             # Binary search tree
│   ├── minheap.h         # Priority queue
│   ├── linkedlist.h      # Event log
│   ├── threatmap.h       # Radar sectors
│   └── utils.h           # Shared utilities
├── tests/                # Unit tests
├── docs/                 # Documentation
├── CMakeLists.txt
└── README.md

Author

Shahab Ahmedgithub.com/ShahabAhmed01

MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors