#COMP 345 Group Project README Project Overview Welcome to our COMP 345 group project, a simulation of the online game WarZone.com! This project delves into the world of C++ programming, utilizing Object-Oriented Programming (OOP), pointer objects, memory management, and various data structures, including graphs. To enhance the project's architecture, we've implemented behavioral design patterns such as Observer and Strategy.
##Project Description Our project is a simulation of the popular online game WarZone.com, aiming to replicate its gameplay dynamics and strategies. We've chosen C++ as our language of choice to leverage its powerful features for game development. The project involves the creation of an intelligent system that manages player interactions, strategic decision-making, and dynamic updates to the game state.
Key Concepts and Technologies Used C++ and OOP C++ serves as the backbone of our project, enabling us to implement a modular and extensible codebase through the principles of Object-Oriented Programming. Classes and objects are strategically employed to model game entities and their interactions.
Pointer Objects and Memory Management Given the dynamic nature of the game, we've utilized pointer objects and implemented robust memory management techniques. This ensures efficient resource utilization, preventing memory leaks and optimizing the game's performance.
Data Structures - Graphs Graphs play a crucial role in representing complex relationships within the game, such as alliances, territories, and player connections. Our implementation of graph data structures facilitates efficient management and traversal of these relationships.
##Behavioral Design Patterns Observer Pattern The Observer pattern is employed to establish a communication mechanism between game entities. This allows various components to be notified of state changes, enhancing the responsiveness and interactivity of the simulated WarZone.com environment.
Strategy Pattern The Strategy pattern comes into play when implementing intelligent decision-making for in-game strategies. By encapsulating different strategies into interchangeable objects, we provide the system with the flexibility to adapt and evolve as the game progresses.