#include #include #include // Du kan behöva std::abs // OBS! All kod ska skrivas här, i denna fil. // Det är okej att lägga funktionsdefinitionerna direkt i klassen. // Är du van vid filseparerering skriver du först det som ska vara i // respektive h-fil på det ställe där du annars skulle inkluderat // h-filen. // Därefter skriver du det som skulle varit i respektive cc-fil. // I huvudprogrammet ska du ersätta LÄMPLIG_TYP_HÄR med lämplig typ, // justera skapandet av SpyDrones och CruiseMissiles enligt vald typ, // och se till att inga minnesläckor uppstår. int main() { // Vektorn med spelobjekt (förenklat betraktar vi MoveObserver som spelobjekt) std::vector< LÄMPLIG_TYP_HÄR > object_list { // SpyDrone{2, 5}, // SpyDrone{8, 3}, // CruiseMissile{4}, // CruiseMissile{9}, // SpyDrone{0, 0}, // CruiseMissile{10}, }; MoveNotifier pos_notifier{}; // Vi anmäler att de 4 första objekten i object_list är intresserade // av positionsuppdateringar for ( int i{}; i < 4; ++i ) { pos_notifier.subscribe( object_list.at(i) ); } // Vi flyttar målet (t.ex. spelarfiguren) till 6 olika positioner och // ser hur de observerande objekten svarar på positionsförändringen for ( int i{}; i <= 10; i+=2) { std::cout << "Target moved to " << i << std::endl; pos_notifier.notify_move(i); std::cout << std::endl; } }