This project was implemented as part of the course "Computer Programming with C++" at the Department of Informatics of the Athens University of Economics and Business (AUEB). Ιτ involves the implementation of a simple platform game using the Simple Graphics Library (SGG). In the game, the player controls a character navigating through a level, trying to survive by avoiding or eliminating enemies. The game starts with an initial screen where the player presses Enter to begin, and ends with a final screen showing the duration of the game and the number of enemies defeated.
Features: Use of SGG: Exclusive use of the Simple Graphics Library for window management, graphics, and sound. Dynamic Memory: Creation and destruction of entities such as enemies during runtime. Inheritance and Polymorphism: Hierarchical organization of classes based on the ontological structure of game elements, ensuring code reuse and flexibility.
This implementation combines knowledge from lectures and best programming practices to create efficient and well-structured code.
Αυτή η εργασία υλοποιήθηκε στο πλαίσιο του μαθήματος "Προγραμματισμός Υπολογιστών με C++" του τμήματος Πληροφορικής το Οικονομικού Πανεπιστημίου Αθηνών (ΟΠΑ). Περιλαμβάνει την υλοποίηση ενός απλού παιχνιδιού πλατφόρμας χρησιμοποιώντας τη βιβλιοθήκη Simple Graphics Library (SGG). Στο παιχνίδι, ο παίκτης ελέγχει έναν χαρακτήρα που πλοηγείται μέσα σε μια πίστα προσπαθόντας να επιβιώσει, αποφεύγοντας ή εξολοθρεύοντας εχθρούς. Το παιχνίδι ξεκινάει με μία αρχική οθόνη, όπου ο παίκτης πατάει το Enter για να ξεκινήσει και τελειώνει με μία τελική οθόνη που παρουσιάζει πόσο χρονικό διάστημα διήρκησε το παιχνίδι και πόσους εχθρούς εξολόθρευσε ο παίκτης.
Χαρακτηριστικά: Χρήση SGG: Αποκλειστική χρήση της βιβλιοθήκης Simple Graphics Library για τη διαχείριση παραθύρου, γραφικών και ήχου. Δυναμική Μνήμη: Δημιουργία και καταστροφή οντοτήτων όπως εχθροί κατά την εκτέλεση. Κληρονομικότητα και Πολυμορφισμός: Ιεραρχική οργάνωση κλάσεων με βάση την οντολογική δομή των στοιχείων του παιχνιδιού, εξασφαλίζοντας επαναχρησιμοποίηση και ευελιξία.
Αυτή η υλοποίηση συνδυάζει γνώσεις από διαλέξεις και βέλτιστες πρακτικές προγραμματισμού για τη δημιουργία ενός αποδοτικού και καλά δομημένου κώδικα.