Intrusion
This is a game where I have implemented functionalities of a Linux Terminal such as : ls, cd, pwd etc... You have to solve different cryptographic puzzles, which involves real alghoritms implemented by me such as SHA256. There are 3 Hacker which have different abilities, based on the task that you need to complete. Everything was done in C++ using Oriented Object Programming
- [ x ] Nume proiect (poate fi schimbat ulterior)
- [ x ] Scurtă descriere a temei alese, ce v-ați propus să implementați
- [ x ] definirea a minim 3-4 clase folosind compunere cu clasele definite de voi
- [ x ] constructori de inițializare cu parametri
- [ x ] pentru o aceeași (singură) clasă: constructor de copiere,
operator=de copiere, destructor - [ x ]
operator<<pentru toate clasele pentru afișare (std::ostream) - [ x ] cât mai multe
const(unde este cazul) - [ x ] implementarea a minim 3 funcții membru publice pentru funcționalități specifice temei alese, dintre care cel puțin 1-2 funcții mai complexe
- nu doar citiri/afișări sau adăugat/șters elemente într-un/dintr-un vector
- [ x ] scenariu de utilizare a claselor definite:
- preferabil sub formă de teste unitare, mai ales dacă vorbim de aplicații consolă
- crearea de obiecte și apelarea tuturor funcțiilor membru publice în main
- vor fi adăugate în fișierul
tastatura.txtDOAR exemple de date de intrare de la tastatură (dacă există); dacă aveți nevoie de date din fișiere, creați alte fișiere separat
- [ x ] tag de
git: de exempluv0.1 - [ x ] serviciu de integrare continuă (CI); exemplu: GitHub Actions
- [ x ] separarea codului din clase în
.h(sau.hpp) și.cpp - [ x ] moșteniri:
- minim o clasă de bază și 3 clase derivate din aceeași ierarhie
- ierarhia trebuie să fie cu bază proprie, nu derivată dintr-o clasă predefinită
- [ x ] funcții virtuale (pure) apelate prin pointeri de bază din clasa care conține atributul de tip pointer de bază
- minim o funcție virtuală va fi specifică temei (e.g. nu simple citiri/afișări)
- constructori virtuali (clone): sunt necesari, dar nu se consideră funcții specifice temei
- afișare virtuală, interfață non-virtuală
- [ x ] apelarea constructorului din clasa de bază din constructori din derivate
- [ x ] clasă cu atribut de tip pointer la o clasă de bază cu derivate; aici apelați funcțiile virtuale prin pointer de bază, eventual prin interfața non-virtuală din bază
- [ x ] suprascris cc/op= pentru copieri/atribuiri corecte, copy and swap
- [ x ]
dynamic_cast/std::dynamic_pointer_castpentru downcast cu sens - [ x ] smart pointers (recomandat, opțional)
- [ x ] excepții
- [ x ] ierarhie proprie cu baza
std::exceptionsau derivată dinstd::exception; minim 3 clase pentru erori specifice - [ x ] utilizare cu sens: de exemplu,
throwîn constructor (sau funcție care întoarce un obiect),try/catchînmain - această ierarhie va fi complet independentă de ierarhia cu funcții virtuale
- [ x ] ierarhie proprie cu baza
- [ x ] funcții și atribute
static - [ x ] STL
- [ x ] cât mai multe
const - [ x ] funcții de nivel înalt, de eliminat cât mai mulți getters/setters/funcții low-level
- [ x ] tag de
git: de exempluv0.2
- [ x ] 2 șabloane de proiectare (design patterns)
- [ x ] o clasă șablon cu sens; minim 2 instanțieri
- [ x ] preferabil și o funcție șablon (template) cu sens; minim 2 instanțieri
- [ x ] tag de
git: de exempluv0.3sauv1.0
- adăugați trimiteri către resursele externe care v-au ajutat sau pe care le-ați folosit