// for now juist CLI, print an arr, then print each it #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "timer.hpp" #include "sorters.hpp" using namespace std::chrono; using namespace std; void displaynumbers(SortingData in_arr) { for (size_t i = 0; i < in_arr.data.size(); ++i) { printf("array:%d ", in_arr.data[i]); } printf("\n"); } void stepbubblesort(vector &data, size_t step) { data[step%data.size()]++; } vector dataprovider(){ return vector {9,8,1,2,7,3,6,4,5}; } void setuptimers(TimerManager &mytimermanager, SortingData &mysd){ unique_ptr mytimer = make_unique( "sort1", 0, [&mysd](Timer &t) { stepbubblesort(mysd.data, t.triggercounter); }, milliseconds(1000)); unique_ptr mydisplaytimer = make_unique("display", 0, [&mysd](Timer &t){displaynumbers(mysd);}, milliseconds(1000)); mytimermanager.add_timer(move(mytimer)); mytimermanager.add_timer(move(mydisplaytimer)); } struct App{ sf::RenderWindow mywindow; sf::Font myfont; sf::Text text; TimerManager mytimermanager; SortingData mysortdata; sf::Font load_font(const string &filename) { sf::Font font; if (!font.openFromFile(filename)){ fprintf(stderr, "failed to load font"); std::exit(1); } return font; } App():mywindow(sf::VideoMode({800,600}), "mywindow"), myfont(load_font("assets/NS-R.ttf")), text(myfont), mysortdata("arr1", dataprovider()) { text.setFont(myfont); text.setString("Hello world"); text.setCharacterSize(24); text.setFillColor(sf::Color::Red); setuptimers(mytimermanager, mysortdata); } void run(){ while (mywindow.isOpen()){ while (const optional event = mywindow.pollEvent()){ if (event->is()) mywindow.close(); } mywindow.clear(sf::Color::Black); mywindow.draw(text); mytimermanager.update_timers(); mywindow.display(); this_thread::sleep_for(milliseconds(1000)); } } }; int main() { App myapp; myapp.run(); }