Skip to content

🎹 Small playable virtual piano, written in C++

License

Notifications You must be signed in to change notification settings

mehanix/Downbeat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Small playable virtual piano, written in C++ (POO, anul I, sem II)

Cerințe obligatorii:
🎹 Interfața grafica (în SDL, SFML, Qt, etc) cu API pentru C++ 🗹
🎹 RTTI
🎹 Abstract Classes
🎹 Operatori (minim 4 * numărul oamenilor din echipa)
🎹 Heap Memory Allocation 🗹

piano.push_back(new WhiteKey(tKeyWhite, tKeyWhitePressed, sf::Vector2f(pos, 280), "a"));

🎹 Exceptions
🎹 STL 🗹

#include <string>
#include <vector>

🎹 Lambda expressions
🎹 Templates
🎹 Smart pointers - minim 1 tip / proiect
🎹 Design patterns - minim 2

Singleton 🗹

/**
 * Piano: Singleton class that holds array of piano keys
 * Calculates black/white key positions.
 * Holds key textures.
 */
class Piano
{
/// ...
public:
    static Piano *getInstance()
    {
        if (!instance){
            instance = new Piano;
            std::cout<<"pianul a fost creat"<<std::endl;
        }
        else{
            std::cout<<"pianul a fost invocat"<<std::endl;
        }
        return instance;
    }

Facade?

// Coming soon!

🎹 Features of C++17/20 (constexpr, consteval, constinit, fold expressions, init statement for if/switch, etc) (minim 1 / proiect)

Opțional => Bonus:
🎹 Move semantics
🎹 Multithreading (la echipe de 3-4 oameni)
🎹 Computer Network / Socket Programming (la echipe de 2-4 oameni)
🎹 BD