#include "window.hpp" #include #include #include #include #include void Window::clear_display() { for(auto [i, j] : std::ranges::views::cartesian_product(std::ranges::views::iota(0, ROW), std::ranges::views::iota(0, COL))) { m_board[i][j].m_symbol = '.'; } } void Window::draw_display(int milliseconds) { std::cout << "\033[H" << std::flush; // Clear screen for(int i = 0; i < ROW; i++) { for(int j = 0; j < COL; j++) { if(m_board[i][j].m_symbol != '.') { std::cout << m_board[i][j].m_symbol << " "; } else { std::cout << ". "; } } std::cout << "\r\n"; } std::this_thread::sleep_for(std::chrono::milliseconds((int) (milliseconds))); // 1000 / fps; 200ms = 5fps } void Window::update_display(Point** buffer) { for(int i = 0; i < ROW * COL; i++) { if(buffer[i] == nullptr || i == 1 || buffer[i]->m_row > ROW - 1 || buffer[i]->m_col > COL - 1) continue; m_board[buffer[i]->m_row][buffer[i]->m_col].m_symbol = buffer[i]->m_symbol; } }